【问题标题】:set root viewcontroller as the delegate for nav controller将根视图控制器设置为导航控制器的委托
【发布时间】:2011-10-21 08:50:22
【问题描述】:

您好,我知道如果在导航控制器上推送/弹出新视图,通常的 viewWillAppearviewDidAppear 将不会被调用。我已经在我的根视图控制器上实现了<UINavigationControllerDelegate> 协议和所需的方法。但是,我很难将根视图控制器设置为导航控制器的委托。有没有办法以编程方式或在情节提要中做到这一点?

我试过了

[self.navigationController setDelegate:self] 来自根视图控制器的 viewWillAppear 方法,但似乎没有效果。任何提示将不胜感激。

【问题讨论】:

  • viewWillAppear 和 co 应该在推送/弹出视图控制器时被调用。
  • 好吧,有些情况并非如此,请参见此处,a.o.:davidebenini.it/2009/01/03/…
  • 那篇文章引用了当您的导航控制器是另一个视图控制器的 subview 时发生的情况。通常这在 iPhone 上很少发生,因为您的导航控制器始终是根控制器。
  • 当我将视图放入 UIScrollingViewController 时遇到了同样的问题,这些子视图使用 ScrollingViewController 的导航栏,所以这些情况确实存在

标签: iphone ios xcode uinavigationcontroller viewwillappear


【解决方案1】:

您是否尝试将这些放在根视图控制器的 viewDidLoad 中:

[self.navigationController viewWillAppear:NO];  //YES if you want to animate

[self.navigationController viewDidAppear:NO];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多