我有LoginViewControllerIphone
实例,我在其中推送TasksRootViewControllerIphone
的实例
然后在TasksRootViewControllerIphone
(出现后 10 秒)我打电话[self.navigationController popViewControllerAnimated:YES];
并收到错误:
[NSRecursiveLock isSystemItem]: unrecognized selector sent to instance 0x3ba360
我尝试打印导航控制器堆栈:
po [self.navigationController viewControllers]
$2 = 0x003445f0 <__NSArrayI 0x3445f0>(
<LoginViewControllerIphone: 0x3b73c0>,
<TasksRootViewControllerIphone: 0x3af290>
)
所以它有适当的视图控制器。任何想法怎么会发生?
更新:
推送代码:
self.tasksRootViewControllerIphone = [[TasksRootViewControllerIphone alloc] initWithNibName:@"TasksRootViewControllerIphone" bundle:nil];
self.tasksRootViewControllerIphone.view.backgroundColor = [UIColor clearColor];
[self.loginViewControllerIphone.navigationController pushViewController:self.tasksRootViewControllerIphone animated:YES];
在TasksRootViewControllerIphone.m中,我有:
- (void)viewDidLoad
{
[self performSelector:@selector(popCurrentViewControllerAnimated) withObject:self afterDelay:10];
}
- (void)popCurrentViewControllerAnimated
{
[self.navigationController popViewControllerAnimated:YES];
}
将 viewDidload 方法更新为
- (void)viewDidLoad
{
[self performSelector:@selector(popCurrentViewControllerAnimated) withObject:nil afterDelay:10];
}
希望它能解决您的问题。
由于该方法popCurrentViewControllerAnimated
不接受任何参数。 所以withObject
应该nil
. 不是self
.
我找到了重点。
问题是因为它不是弧形项目,其中一个UIBarButtonItems被发布了一次。
奇怪,但它导致了popViewController的问题。