DoubleNavigationController 0.9.0

DoubleNavigationController 0.9.0

Yao Li 维护。



  • 作者:
  • yao.li

DoubleNavigationController

Platform Version License MIT Gmail

简介

中文文档

众所周知,UINavigationController 是一个容器视图控制器,它可以管理一个或多个导航界面中的子视图控制器。有时,我们只想更新当前视图控制器的外观,而不是影响整个应用。DoubleNavigationController 是一个库,可以解决上述问题。

架构

我们可以将 UINavigationController 视为一个树,每个节点是一个由其管理的 ViewController。通过使用 DoubleNavigationController,我们可以更新当前节点导航栏的外观,而不会影响其父节点。但是,其子节点的导航栏将受到影响。这种关系可以用下面的图片来描述。

Example

示例

要运行示例项目,请克隆仓库,然后首先从示例目录运行 pod install

Example

用法

您可以通过在 ViewVontroller 中实现 dbn_configNavigationController: 来自定义导航。

- (void)dbn_configNavigationController:(UINavigationController *)navigationController {
    [navigationController setNavigationBarHidden:NO animated:NO];
    navigationController.navigationBar.barTintColor = [UIColor whiteColor];
    navigationController.navigationBar.tintColor = [UIColor purpleColor];
    navigationController.navigationBar.titleTextAttributes = @{NSFontAttributeName: [UIFont systemFontOfSize:20], NSForegroundColorAttributeName: [UIColor redColor]};
}

- (void)dbn_configNavigationItem:(UINavigationItem *)navigationItem {
    UIBarButtonItem *btnItem = [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStylePlain target:self action:@selector(eventFromButton:)];
    navigationItem.rightBarButtonItem = btnItem;
    navigationItem.title = @"Hello";
}

您还可以通过使用 dbn_performBatchUpdates:UIViewController 类别中对导航的外观进行更新。

[self dbn_performBatchUpdates:^(UINavigationController * _Nullable navigationController) {
    if (navigationController) {
        navigationController.navigationBar.tintColor = [UIColor purpleColor];
    }
}];

安装

DoubleNavigationController 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'TargetName' do
pod 'DoubleNavigationController'
end

许可

DoubleNavigationController 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。