【问题标题】:UINavigationController popViewControllerAnimated issueUINavigationController popViewControllerAnimated 问题
【发布时间】:2013-09-25 10:17:35
【问题描述】:

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

【问题讨论】:

  • 我在那里找不到解决方案
  • 你能发一些推送视图控制器的代码吗??
  • 在启动时发布您的 TasksRootViewControllerIphone 可执行方法,这通常发生在您的 ViewDidLoad 方法中。
  • 我更新了推送代码并查看了加载代码

标签: iphone ios uinavigationcontroller uinavigationitem popviewcontrolleranimated


【解决方案1】:

将您的 viewDidload 方法更新为

 - (void)viewDidLoad
{
    [self performSelector:@selector(popCurrentViewControllerAnimated) withObject:nil afterDelay:10];
}

希望它能解决你的问题。

作为方法popCurrentViewControllerAnimated 不带任何参数。所以withObject 应该是nil。不是self

【讨论】:

  • 什么是新的?检查问题正确
  • @kirti 在 vi​​ewDidLoad Method {[self performSelector:@selector(popCurrentViewControllerAnimated) withObject:self afterDelay:10];} 中有问题,这是错误的。
  • 现在错了,因为我有一个单独的方法popCurrentViewControllerAnimated,我使用@selector(popCurrentViewControllerAnimated)
【解决方案2】:

我找到了重点。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多