我有一个iOS应用程序,如果用户通过Facebook帐户登录,它会以不同的方式启动。
所以申请流程如下:
1-我调用app delegate,它创建一个navigationController并显示它。
2-在根视图控制器中,它会检查用户是否已登录。默认情况下(例如在第一次引导期间),它会加载未登录的视图控制器,仅显示未记录用户的内容。如果用户使用Facebook帐户登录,则会向服务器发送请求并显示登录用户的内容。请求以didupdatelocation委托方法开始,从中获取当前位置。
3-有很多地方应用程序询问您是否要登录。如果用户获得正确的登录,它会创建一个新的导航控制器,如在app delegate中,并显示它。问题是,这样就不会调用方法didupdatelocation,因此它不会获取当前位置,也不会向服务器发出任何请求。
您如何建议我解决问题?
答案 0 :(得分:2)
您的设计不应该依赖于didUpdateLocation来调用。系统以不可预测的间隔调用此方法。
然而,强制它调用的一种方法是停止locationManager并再次启动它。
startUpdatingLocation
stopUpdatingLocation
但是,我建议您咨询CLLocationManager Class Reference并相应地重新设计登录检查。