如何在没有导航控制器的情况下将导航栏添加到视图 [英] How to add Navigation bar to a view without Navigation controller

查看:84
本文介绍了如何在没有导航控制器的情况下将导航栏添加到视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好我在我的应用程序中有一个侧面菜单,它滑出来显示一个表视图并在那里形成我有使用显示视图控制器的segue。 segue必须直接连接到视图控制器,否则应用程序崩溃,所以我不能使用导航控制器。我的问题是如何在没有导航控制器的情况下添加带有条形按钮项的导航栏。
我在故事板上完成了所有布局。

Hello all In my app I have a side menu that slides out to display a table view and form there I have segues that use the reveal view controller. The segue has to connect directly to the view controller otherwise the app crashes so I cant use a navigation controller. My question is how do I add a navigation bar with a bar button item without a Navigation controller. I have done all my layouts in the story board.

推荐答案

虽然有几种智能方法可以回答您的问题。我刚刚以编程方式解决了它并在我的 viewWillAppear 中编写了以下代码(注意 - viewDidLoad 也没关系,但不建议) -

While there are several smart ways to answer your question. I just solved it programmatically and wrote the following code in my viewWillAppear (note - viewDidLoad is also okay, but not suggested) -


-(void) viewWillAppear:(BOOL)animated {

    UINavigationBar *myNav = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    [UINavigationBar appearance].barTintColor = [UIColor lightGrayColor];
    [self.view addSubview:myNav];


    UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel"
                                                                   style:UIBarButtonItemStyleBordered
                                                                  target:self
                                                                  action:nil];

    UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                                 style:UIBarButtonItemStyleBordered
                                                                target:self action:nil];


    UINavigationItem *navigItem = [[UINavigationItem alloc] initWithTitle:@"Navigation Title"];
    navigItem.rightBarButtonItem = doneItem;
    navigItem.leftBarButtonItem = cancelItem;
    myNav.items = [NSArray arrayWithObjects: navigItem,nil];

    [UIBarButtonItem appearance].tintColor = [UIColor blueColor];
}

因此,您有一个带有蓝色条形按钮项目的白色导航栏,没有导航控制器。同样,在您的情况下还有其他方法可以实现它。希望,这很有用。

So, you have a white navigation bar with blue bar button items without a Navigation controller. Again, there are other ways to implement it in your case. Hope, this was helpful.

输出 -

更新 -

添加图片 -

UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0,10,32,32)];
[myImage setImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myImage];
[self.view addSubview:myImage];

这篇关于如何在没有导航控制器的情况下将导航栏添加到视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆