Xamarin.ios 可以覆盖哪个UINavigationController事件以访问当前视图控制器?

Xamarin.ios 可以覆盖哪个UINavigationController事件以访问当前视图控制器?,xamarin.ios,monodevelop,monotouch.dialog,Xamarin.ios,Monodevelop,Monotouch.dialog,可以覆盖哪个UINavigationController事件以访问当前视图控制器 我的最终目标是检查导航控制器中的当前屏幕,以确定是否调用SetNavigationBarHidden。让UINavigationController子类采用UINavigationControllerDelegate协议如何?然后实现与navigationController:willShowViewController:animated:或navigationController:didShowViewContr

可以覆盖哪个UINavigationController事件以访问当前视图控制器


我的最终目标是检查导航控制器中的当前屏幕,以确定是否调用SetNavigationBarHidden。

让UINavigationController子类采用UINavigationControllerDelegate协议如何?然后实现与navigationController:willShowViewController:animated:或navigationController:didShowViewController:animated:等效的单触式。每个方法都传递一个参数,该参数是指向视图控制器的指针,该视图控制器的视图和导航项属性正在显示。您必须记住将导航控制器设置为自己的代理。

如果当前表示当前可见,则可以使用UINavigationController的属性。但是如果你使用的是MT.D,你会想把它扔掉:

var currentViewController = (DialogViewController)myNavController.VisibleViewController

或者,您可以直接访问ViewController阵列。或者……您也可以将DialogViewController子类化,并在实现中设置NavigationBar.Hidden=true。

我没有将属性NavigationBar视为DialogViewController的一部分。也许我应该更规范一些。但您可以从连接的UIViewController内部访问父UINavigationController。所以它看起来像:this.NavigationController.NavigationBar.Hidden=true;