Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone alertView回调问题中的PoptorootViewController初始化_Iphone_Objective C_Ios - Fatal编程技术网

Iphone alertView回调问题中的PoptorootViewController初始化

Iphone alertView回调问题中的PoptorootViewController初始化,iphone,objective-c,ios,Iphone,Objective C,Ios,我的应用程序中有一个数据下载过程,通过点击按钮启动。该操作发生在后台线程上,因此用户可以自由地导航到其他视图,并按照自己的喜好进行操作 下载完成后,会向用户显示警报,提示需要重新加载应用程序。单击确定后,将运行alertView ClickedButtonIndex方法。在这个方法中,我调用PoptorootViewController 如果我没有导航到其他视图,并且一直停留在用户启动下载的视图上,那么这就行了!!问题是,如果用户已导航离开下载启动视图,并在“重新加载应用程序”警报上单击“确定”

我的应用程序中有一个数据下载过程,通过点击按钮启动。该操作发生在后台线程上,因此用户可以自由地导航到其他视图,并按照自己的喜好进行操作

下载完成后,会向用户显示警报,提示需要重新加载应用程序。单击确定后,将运行alertView ClickedButtonIndex方法。在这个方法中,我调用PoptorootViewController

如果我没有导航到其他视图,并且一直停留在用户启动下载的视图上,那么这就行了!!问题是,如果用户已导航离开下载启动视图,并在“重新加载应用程序”警报上单击“确定”,则不会发生任何事情。用户不会重定向回根视图控制器。它只是呆在原地

有人能帮忙吗?我是不是走错了路?我需要一个进程来重新启动应用程序或返回到我的根视图控制器,无论用户在单击下载按钮后导航到哪里

最糟糕的情况是,我会关闭应用程序,并告诉用户需要重新启动才能应用更新。我宁愿避开这一点,允许用户留在应用程序中

谢谢你的帮助

更新:

以下是所需的代码:

- (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:而不是PoptorootViewController:animated。当最后一个对我不起作用时,我使用setViewController:animated:并起作用。上次我将setViewController与动画“是”一起使用时,它出错。转发。如果您尝试使用动画:否

可以使用setViewController:animated:而不是PoptorootViewController:animated。当最后一个对我不起作用时,我使用setViewController:animated:并起作用。上次我将setViewController与动画“是”一起使用时,它出错。转发。如果发生这种情况,请尝试使用animated:NO

,您也可以尝试设置发送给singleton应用程序代理的通知,该通知在下载完成或单击按钮ok或其他按钮时被调用。然后在此回调中,您可以重新加载到所需的任何视图控制器。

您还可以尝试设置发送到singleton应用程序委托的通知,该通知在下载完成或单击“确定”按钮时调用。然后在这个回调中,您可以重新加载到您想要的任何视图控制器。

所有内容都放在一个导航控制器下吗?在任何情况下,根视图控制器都是相对于当前的。请在弹出到根视图的位置发布代码。我怀疑你试图找到的导航控制器在你引用它的上下文中是零。很抱歉出现了双重帖子。我用代码更新了这篇文章。什么控制器拥有
alertView:ClickedButtonIndex:
方法?如果是启动下载的控制器,则如果用户导航到某些上层(导航堆栈中)控制器,则在下载完成时该控制器可能已被释放。是的,是启动dload的控制器。我已经在调试器中验证了代码是否运行。如果它已经发布,但只是不更新视图,它还会运行吗?我是iOS新手,所以请带上我。所有东西都放在一个导航控制器下吗?在任何情况下,根视图控制器都是相对于当前的。请在弹出到根视图的位置发布代码。我怀疑你试图找到的导航控制器在你引用它的上下文中是零。很抱歉出现了双重帖子。我用代码更新了这篇文章。什么控制器拥有
alertView:ClickedButtonIndex:
方法?如果是启动下载的控制器,则如果用户导航到某些上层(导航堆栈中)控制器,则在下载完成时该控制器可能已被释放。是的,是启动dload的控制器。我已经在调试器中验证了代码是否运行。如果它已经发布,但只是不更新视图,它还会运行吗?我是iOS新手,所以请记住我。我有点iOS新手。你能描述一下如何做到这一点吗?我的alert对象中是否有我需要指定的东西,告诉它将回调路由到我的应用程序代理?我有点iOS新手。你能描述一下如何做到这一点吗?我的alert对象中是否有我需要指定的内容,告诉它将回调路由到我的应用程序委托?