Implicitly make every view controller has its own navigation bar
RTRootNavigationController
How many lines of code should I write to fit in iPhone X? Zero.
More and more apps use custom navigation bar for each different view controller, instead of one common, global navigation bar.
This project just help develops to solve this problem in a tricky way, develops use this navigation controller in a farmilar way just like you used to be, and you can have each view controller a individual navigation bar.
Usage
As an advise, please set RTRootNavigationController
as your rootViewController:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController *yourController = ...;
self.window.rootViewController = [[RTRootNavigationController alloc] initWithRootViewController:yourController];
return YES;
}
you can implement following method to customize back bar button item (Recommended):
- (UIBarButtonItem *)rt_customBackItemWithTarget:(id)target
action:(SEL)action
{
return [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil)
style:UIBarButtonItemStylePlain
target:target
action:action];
}
or just set useSystemBackBarButtonItem
to YES and use the default one.
To run the example project, clone the repo, and run pod install
from the Example directory first.
Notice(Only for below v0.6)
Your ViewController hierarchy will change to:
RTRootNavigationController
`- RTContainerViewController
| `- RTContainerNavigationController
| `- YourViewController1
`- RTContainerViewController
`- RTContainerNavigationController
`- YourViewController2
So, if you access self.navigationController
it returns a container navigation controller, and its viewControllers
will always be 1, i.e. self
. Instead, your have to use self.rt_navigationController.rt_viewController
to get all siblings, as metioned Here and Here.
Requirements
- iOS 7 and up
- Xcode 7 and up
Installation
RTRootNavigationController is available through CocoaPods. To install
it, simply add the following line to your Podfile:
pod "RTRootNavigationController"