UINavigationController popViewControllerAnimated问题

时间:2013-09-20 05:54:36

标签: iphone ios uinavigationcontroller uinavigationitem popviewcontrolleranimated

我有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];
}

2 个答案:

答案 0 :(得分:1)

将viewDidload方法更新为

 - (void)viewDidLoad
{
    [self performSelector:@selector(popCurrentViewControllerAnimated) withObject:nil afterDelay:10];
}
希望它能解决你的问题。

由于方法popCurrentViewControllerAnimated没有采取任何论据。因此withObject应为nil。不是self

答案 1 :(得分:0)

我发现了这一点。

问题是因为它不是arc项目,其中一个UIBarButtonItems被释放了一次。

很奇怪,但是它导致了popViewController的问题。