导航栏停留在TabBarController上

时间:2012-07-01 02:45:02

标签: objective-c uitabbarcontroller uinavigationbar

我希望有一个带有设置按钮的导航栏,无论它在哪个标签上,都会保留在那里。

很抱歉这条短信对我来说很晚,

大通

3 个答案:

答案 0 :(得分:0)

您可以做的是将UIToolBar拖到故事板控制器上,然后设置按钮和所需的操作。您可以使所有控制器从同一个基类扩展,而不必重复代码,如果您觉得它更令人满意,可以在代码中实例化此工具栏。

问题在于使用导航,因为导航栏将替换/重叠此工具栏。

UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];

UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithTitle:@"Title" 
                                                             style:UIBarButtonItemStyleBordered 
                                                            target:self
                                                            action:@selector(myAction:)];


[myToolbar setItems:[NSArray arrayWithObjects:myButton, nil]];

[self.view addSubview:myToolbar];

答案 1 :(得分:0)

在AppDidFinishLaunching中:

Add Your TabBarcontroller (rootViewController) for UINavigationController

现在添加设置按钮是navigationBar中的示例

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
style:UIBarButtonSystemItemDone target:nil action:nil];

navigationCOntroller.navigationItem.rightBarButtonItem = rightButton 

rightButton将在应用程序中可见

答案 2 :(得分:0)

如果您只想放置一个带有设置按钮的导航栏,可以使用UITabBarController从任何视图访问该设置按钮,您可以在AppDelegate中执行类似的操作 - >

YourViewController1 *yourVC1 = [YourViewController1 alloc]  initWithNibName:@"YourViewController1" bundle:nil];
UINavigationController *yourNVC1 = [[UINavigationController alloc] initWithRootViewController:yourVC1];

YourViewController2 *yourVC2 = [YourViewController2 alloc]  initWithNibName:@"YourViewController2" bundle:nil];
UINavigationController *yourNVC2 = [[UINavigationController alloc] initWithRootViewController:yourVC2];

UITabBarController *tabBC = [[UITabBarController alloc] init];
[tabBC setViewControllers:[NSArray arrayWithObjects:yourNVC1, yourNVC2, nil]];

self.window.rootViewController = tabBC;

你应该在所有视图上都有一个带导航栏的标签栏。现在,将设置按钮放在导航栏中,将其添加到视图控制器中要显示设置按钮的viewDidLoad方法 - >

UIBarButtonItem *selectBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(selectorName:)];
self.navigationItem.rightBarButtonItem = selectBarButton;