【问题标题】:popViewController not workingpopViewController 不工作
【发布时间】:2011-03-29 18:54:39
【问题描述】:

我遇到了popViewController 的问题。

我用pushViewControllerOrdersFormViewController

OrdersFormViewController *ordersFormViewController = [[OrdersFormViewController alloc] initWithNibName:@"OrdersFormViewController" bundle:nil];

[self.navigationController pushViewController:ordersFormViewController animated:YES];
[ordersFormViewController release];

来自OrdersFormViewController,我在viewDidLoad 中显示一个UIAlertView 并调用popViewController,但这不起作用。

UIAlertView* alertView = [[UIAlertView alloc]
                         initWithTitle:@"Error"
                         message:@"Error"
                         delegate:self
                         cancelButtonTitle:@"OK"
                         otherButtonTitles:nil];
[alertView show];
[alertView release];

[self.navigationController popViewControllerAnimated:YES];

视图不是从 navigationController 中“弹出”的,但是当按下导航栏中的标准后退按钮时,只有导航栏发生变化,而不是实际视图。

有人知道为什么会这样吗?

【问题讨论】:

  • 您应该等到用户关闭警报。这样可以减少用户的困惑。
  • 好点!我实现了它,现在它可以工作了。非常感谢你。我不确定这里的政策是什么。也许你应该留下一个我可以接受的答案?
  • 我已经给出了答案,但实际上这是关于用户体验的建议。很高兴它起作用了:)

标签: iphone sdk popviewcontroller


【解决方案1】:

我遇到了类似的问题,我通过使用解决了它

[self.parentViewController.navigationController popViewControllerAnimated:YES];

希望对您有所帮助。

【讨论】:

  • 关于 parentViewController:“请注意,从 5.0 开始,这将不再返回呈现视图控制器。” :(
【解决方案2】:

不确定您要完成什么;但请尝试将其添加到 viewDidAppear

viewDidLoad 可能会在您进行初始 pushViewController 呼叫之前被呼叫。

【讨论】:

  • +1 尝试在视图控制器出现之前弹出视图控制器肯定会遇到问题。
【解决方案3】:

您应该等到用户关闭警报。这样可以减少用户的困惑。

你回复我的评论说它有效,出于某种我不明白的神奇原因。

【讨论】:

  • 出于某种原因它起作用了。我也不确定。如果将来有人应该看到此线程,正确的方法似乎是将其移至viewDidAppear。这也适用于我。
【解决方案4】:

您应该在 -viewDidAppear: 方法中完成所有这些操作。在此处调用时,动画序列当前正在进行中,您的控制器实际上还没有在屏幕上进行动画处理。等到你在屏幕上动画,然后解散自己。

【讨论】:

    【解决方案5】:

    如果您从主从模板创建项目,请移除拆分视图控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多