我是我應用程序的主導航控制器的UINavigationControllerDelegate。我想知道我的導航控制器顯示的視圖控制器何時會更改以及何時更改。我目前使用這些委託方法找出:檢測導航控制器內容更改,但忽略隱藏/顯示導航控制器本身
// Called when the navigation controller shows a new top view controller via a push, pop or setting of the view controller stack.
optional func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool)
optional func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool)
不幸的是,導航控制器包含着一個滑出式菜單視圖控制器。菜單控制器調用主視圖控制器上的外觀轉換方法,以便在顯示菜單時收到viewWillDisappear
,並在菜單被隱藏時收到viewWillAppear
/viewDidAppear
。包含在導航控制器中的視圖依賴於這些事件來了解它們何時可見。
當viewWillAppear
在導航控制器本身發生火災時,它會對我調用navigationController:willShowViewController:
。當導航控制器上的viewDidAppear
發生火災時,它會呼叫navigationController:didShowViewController:
。
有什麼辦法可以區分我的導航控制器呈現不同的內容視圖控制器和導航控制器本身顯示?
代表是什麼對象?它是一個控制器,如果是,它適合視圖控制器層次結構? – rdelmar 2015-03-31 19:34:20
@rdelmar這是管理一些全局狀態的AppDelegate。 – s4y 2015-03-31 19:58:24