2012-01-03 42 views
1

iPhone的位置我已经设置我的应用程序最初尽快要求的位置,因为它负载,但在第一次应用程序使用弹出对话框,要求允许从用户出现短短的一秒钟,然后消失的观点完成加载(或某物)。这一切都发生得太快,用户说“是的,没关系”。我应该在哪里放置以下代码,以便在用户首次加载应用程序时出现位置权限弹出窗口?获取有关加载

CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
CLLocation *location = [[CLLocation alloc] init]; 

locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; 
[locationManager setPurpose:@"A fun way to record where you've answered the questions and how you did at each location."]; 
[locationManager startUpdatingLocation]; 
location = [locationManager location]; 
[locationManager stopUpdatingLocation]; 

谢谢 布伦

+0

我们需要上下文。你在哪里执行上述代码? – 2012-01-03 21:47:20

+0

该权限对话框不应该关闭。当我在我的App Delegate的'ApplicationDidFinishLaunchingWithOptions:'方法中启动位置管理器启动时,它会启动权限对话框并阻止,直到用户回复它为止。这就是这样的模态对话框。 – 2012-01-03 21:52:25

+0

对不起,我在我的第一个视图控制器的viewDidLoad事件。 – 2012-01-03 22:40:59

回答

2

有很多地方,你可以把这个代码。基本上,它需要在完成加载用户界面之后。

它可以在你的AppDelegate,只要它是[self.window makeKeyAndVisible]调用之后。
它也可以是你的第一个的viewController的方法viewDidAppear:。如果您选择此选项,请记住viewDidAppear:可以多次调用。

+0

我找不到我的应用程序的MakeKeyAndVisible部分,但我确实尝试将其放在viewDidAppear(在第一个视图控制器中出现),但仍然导致快速弹出和消失警报请求。 – 2012-01-03 22:48:41

+0

您在创建应用程序时使用了哪个模板? – Guillaume 2012-01-04 10:12:47

+0

这是ios 5 SDK中的标签栏应用程序。 – 2012-01-05 01:12:55