我创建了一个带有4个自定义标签栏项目的标签栏控制器。我想在两个标签栏视图控制器中添加导航栏(只有标题的简单横幅)。 这就是我做的。 让我们说4个标签栏视图控制器是vc1,vc2,vc3,vc4。 我在文件vc1ViewController.m
下的viewDidLoad()中添加了一些代码UINavigationBar *navBar = [[UINavigationBar alloc] init];
navBar.barStyle = UIBarStyleBlack;
navBar.topItem.title = @"News";
UINavigationItem *title = [[UINavigationItem alloc]initWithTitle:@"news"];
[self.view addSubview:navBar];
我之后还添加了一个tableview
[self.view addSubview:self.tv];
当我运行应用程序时,可以显示表格,但导航栏不在那里。
我该怎么做才能解决这个问题?我只想要一个带标题的简单导航栏。
答案 0 :(得分:0)
您必须创建一个UINavigationController(这是一个特殊的ViewController并为选项卡设置它。)这将为您创建导航栏。 (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/)
答案 1 :(得分:0)
您必须将标签栏的viewcontollers设置为包含所需视图控制器的导航控制器。
因此,不要使用标签栏的vc1,vc2,vc3,vc4,而是使用如下所示的nav1,nav2,nav3,nav4:
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:vc1];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:vc2];
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:vc3];
UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:vc4];
从那里你可以设置标题:
[vc1 setTitle:@"title1"];
[vc2 setTitle:@"title2"];
[vc3 setTitle:@"title3"];
[vc4 setTitle:@"title4"];
正如UINavigationController Docs:
中所述如果未设置自定义标题视图,导航栏将显示包含视图控制器默认标题的标签。此标签的字符串通常从视图控制器本身的title属性中获取。如果要显示与视图控制器关联的标题不同的标题,请改为设置视图控制器导航项的title属性。