iOS:在viewControllers上添加导航栏下方的视图

时间:2016-08-30 16:17:24

标签: ios objective-c swift uinavigationcontroller uitabbarcontroller

我有一个这样的项目:

enter image description here

但是我试图弄清楚如何在导航栏的导航栏下面添加一个横幅,如果需要的话我可以隐藏它。你们中的任何人都知道我该怎么做?

3 个答案:

答案 0 :(得分: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

上传了一个例子

希望有所帮助

答案 1 :(得分:1)

使用TSMessages。

这个库提供了一个易于使用的类,可以在屏幕顶部显示很少的通知视图

https://github.com/KrauseFx/TSMessages

答案 2 :(得分:0)

对于objective-c,请使用RMessage

enter image description here

对于swift,请使用SwiftMessagesPreview