我有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];
}
答案 0 :(得分:1)
将viewDidload方法更新为
- (void)viewDidLoad
{
[self performSelector:@selector(popCurrentViewControllerAnimated) withObject:nil afterDelay:10];
}
希望它能解决你的问题。
由于方法popCurrentViewControllerAnimated
没有采取任何论据。因此withObject
应为nil
。不是self
。
答案 1 :(得分:0)
我发现了这一点。
问题是因为它不是arc项目,其中一个UIBarButtonItems被释放了一次。
很奇怪,但是它导致了popViewController的问题。