回答

2

在主视图控制器中实现协议UINavigationControllerDelegate和选择器navigationController:didShowViewController:animated:您可以操纵导航控制器呈现的视图控制器。 e.g:

@interface ViewController() <UINavigationControllerDelegate> 
@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.navigationController.delegate = self; 
} 

-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{ 

    UIView *banner = [[UIView alloc] initWithFrame:CGRectMake(0, navigationController.navigationBar.frame.size.height + 10, 
                   viewController.view.bounds.size.width,30)]; 
    banner.backgroundColor = [UIColor blueColor]; 

    [viewController.view addSubview:banner]; 
} 

@end 

在这个例子中ViewController应呈现为UINavigationController第一视图控制器。

我上传的例子在github

希望它可以帮助

+0

顶部小通知的意见这是否实现,可显示所有viewControllers或只是在主要的viewController? – user2924482

+0

是的,所有的视图控制器,我没有更新答案 – frankfg