Вы должны создать XIB с UINavaigationController
в нем. Затем вы можете выбрать navigationBar
в Interface Builder и изменить класс на ваш подкласс UINavigationBar
.
Затем, чтобы сделать это немного легче инстанцирует добавить категорию `UINavigationController как:
@interface UINavigationController (DSCNavigationController)
+ (UINavigationController *)dsc_navigationControllerWithRootViewController:(UIViewController *)rootViewController;
@end
@implementation UINavigationController (DSCNavigationController)
+ (UINavigationController *)dsc_navigationControllerWithRootViewController:(UIViewController *)rootViewController;
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"DSCNavigationController" owner:nil options:nil];
NSAssert(1 == [topLevelObjects count], @"DSCNavigationController should have one top level object");
UINavigationController *navigationController = [topLevelObjects objectAtIndex:0];
NSAssert([navigationController isKindOfClass:[UINavigationController class]], @"Should have a UINavigationController");
[navigationController pushViewController:rootViewController animated:NO];
return navigationController;
}
@end
В верхней части класса, который использует его убеждается импортировать категорию в мой случай это выглядит как
#import "UINavigationController+DSCNavigationController"
Затем, используя это выглядит как
MyViewController *myViewController = [[MyViewController alloc] init];
UINavigationController *navigationController = [UINavigationController dsc_navigationControllerWithRootViewController:myViewController];
Не могли бы вы показать мне, как это должно выглядеть в AppDelegate? – Streetboy
Работал. Но это не работает [self.navigationController pushViewController: sendMsg animated: YES]; – Streetboy
В каком классе вы это называете? Убедитесь, что 'NSLog (@"% @ ", self.navigationController);' не является нулевым –