我正在调用UINavigationController
的{{1}}选择器,但它没有效果。该应用程序不会崩溃或冻结,当前viewcontroller上的所有触摸元素保持不变。
请参阅下面的屏幕截图。我在执行或控制台中没有明显错误,除了没有任何反应这一事实。
我考虑过的事情:
popToViewController
在我的屏幕截图顶部调用。performSelectorOnMainThread
就在那里。
请注意,在执行的这一点上,有时刚刚运行了第263-270行的代码,这清除了根导航控制器的viewControllers数组。这意味着屏幕上当前显示的视图控制器甚至不再在数组中。那会不会搞乱popTo?
类似的问题:
我正在运行XCode 5.0(5A1413),在带有iOS 7.2的iPhone 5上进行编译和运行。
答案 0 :(得分:1)
你可以尝试一下吗?
[self.mRootController popToRootViewControllerAnimated:NO];
并且自我符号很重要。 :)
答案 1 :(得分:1)
检查来自popToViewController:animated:
方法的返回结果 - 这将返回导航控制器从堆栈中弹出的视图控制器数组,以便与您的方法相对应。如果它是零,那意味着它没有找到它正在寻找的控制器。如果它包含正确的结果,那么它会指示导航控制器认为它正在按照您的要求进行,问题出在其他地方。
您的CXLoginViewController
中是否有可能响应viewWillAppear:
/ viewDidAppear:
并更改导航堆栈的代码?您的自定义导航控制器中是否有可能未正确实现方法popToViewController:animated:
的内容(过去发生在我身上)?
如果您所指的警报是第235行的警报,就在performSelectorOnMainThread:
电话之后,可能会导致一些问题。 performSelectorOnMainThread将运行循环调用的方法(由选择器表示)排队。在调用之后立即与UI混淆可能会有问题 - 您是否尝试过发出警报?