rickytan / RTRootNavigationController

Implicitly make every view controller has its own navigation bar
MIT License
2.15k stars 379 forks source link

请问能否增加设置某一导航控制器下的导航栏样式的功能? #194

Closed likeSo closed 6 years ago

likeSo commented 6 years ago

需求大致为:某一页面present出一个navigationController,此时的这个navigationController的样式是区别于App全局样式(UINavigationBar.appearance())的。

问题是,能否增加为此时的这个navigationController下的所有navigationBar设置单独样式的接口?

rickytan commented 6 years ago

- viewDidLoad 中直接改就好

likeSo commented 6 years ago

我知道可以这样改,但是这样只能改一个页面啊,我是说能否增加一个,统一设置这个导航控制器下以及其所有push出来的导航栏的样式,但是又不影响其他导航控制器的接口。

比如登录注册页面是模态出来的一个RTRootNavigationController,我想统一设置这个RTRootNavigationController下所有导航栏的样式,比如navigationItem.title,比如left/rightBarButtonItem的样式。

希望能添加这样的接口

rickytan commented 6 years ago

你可以这样:

- (void)onPresent:(id)sender
{
    VC *yourVC = ...;
    RTRootNavigationController *nav = [[RTRoot alloc] init];
    nav.navigationBar // 修改成你要的样式
    nav.transferNavigationBarAttributes = YES;    // 让后面进来的 vc 都带上样式
    [nav push: yourVC animated: NO];

   [self present: nav animated: YES];
}
likeSo commented 6 years ago

多谢!!以前没有看到你这块的代码,抱歉