免费开源的iOS开发学习平台

UINavigationController介绍:3-子控制器的管理

UINavigationController类中提供了可以访问所有子控制器的方法和属性,因此,可以通过导航控制器获取到其所管理的任意一个子控制器对象。另外,任意一个子控制器,也可以获取到管理它的导航控制器,继而可以与其他子控制器进行通信。

管理UINavigationController的子控制器

导航控制器对象中提供了相关属性,用于获取该导航控制器管理下的所有子控制器,主要包括如下几个属性。

  • 获取导航控制器管理的所有子控制器。导航控制器的viewControllers属性是一个数组,有序存放了被该导航控制器管理的所有子控制器
@property(nonatomic,copy) NSArray *viewControllers;
  • 获取栈顶控制器
@property(nullable, nonatomic,readonly,strong) UIViewController *topViewController;

UIViewController中有关导航控制器的属性

UIViewController对象中,也可以获取到管理自身的导航控制器,通过该属性,任何一个子控制器,都可以获取管理自身的导航控制器,并且通过该导航控制器继而可以获取到其他子控制器。

@interface UIViewController (UINavigationControllerItem)
@property(nullable, nonatomic,readonly,strong) UINavigationController *navigationController;
@end