我的应用程序中有一个数据下载过程,它是通过单击按钮启动的。该操作发生在后台线程上,因此用户可以自由导航到其他视图并按照自己的意愿进行操作。
下载完成后,会向用户显示警报,提示需要重新加载该应用程序。单击“确定”后,将运行alertView clickedButtonAtIndex方法。在此方法内部,我调用popToRootViewControllerAnimated。
如果我还没有导航到其他视图,而是停留在用户从其启动下载的视图上,那么这可行!问题是,如果用户已经离开下载启动视图,并在“重新加载应用程序”警报上单击“确定”,则不会发生任何事情。用户不会被重定向回到根视图控制器。它只是留在原地...
有人可以帮忙吗?我是否以错误的方式处理?无论单击下载按钮后用户已导航到何处,我都需要一个重新启动应用程序或返回到我的根视图控制器的过程。
最坏的情况是我将关闭应用程序,并告诉用户他们需要重新启动才能应用更新。我宁愿避免这种情况,并允许用户留在应用程序中。
谢谢你的帮助。
更新:
这是要求的代码:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex != 0) {
//User indicated that they want to restart the app so that they can apply the update
cameFrom = CAME_FROM_RESTART;
[self.navigationController popToRootViewControllerAnimated:NO];
}
最佳答案
您可以使用setViewController:animated:代替popToRootViewControllerAnimated。当最后一个对我不起作用时,我使用setViewController:animated:并起作用。上一次我将setViewController与动画YES一起使用时,会出错。转发。如果发生这种情况,请尝试使用animation:NO