0

我想在导航栏的右侧创建三个按钮。我正在使用情节提要来创建 UIView 控制器。在 DetailViewController 中嵌入了一个使用故事板的导航栏,然后以编程方式创建三个 UIBarButtonItem,然后将它们添加到数组中,然后将其分配给 navigationitem。这工作正常。

UIBarButtonItem *Button1 = [[UIBarButtonItem alloc]initWithTitle:@"Button1" style:UIBarButtonItemStylePlain
                                                           target:self action:@selector(Button1Clicked:)] ;

UIBarButtonItem *Button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStylePlain
                                                             target:self action:@selector(Button2Clicked:)] ;

UIBarButtonItem *Button3 = [[UIBarButtonItem alloc] initWithTitle:@"Button3" style:UIBarButtonItemStylePlain
                                                              target:self action:@selector(Button3Clicked::)] ;

self.navigationItem.rightBarButtonItems =
[NSArray arrayWithObjects:Button1,Button2,Button3, nil];

我有另一个视图控制器,这是一个模态视图控制器。我正在使用情节提要创建视图控制器并添加导航栏而不是导航控制器。然后使用相同的方法将按钮添加到导航栏,但未显示任何按钮。请任何人知道如何解决这个问题。?

4

2 回答 2

1

如果你的 viewController 在UINavigationController你可以简单地使用

self.navigationItem ...

如我所见,效果很好。但是如果您的 viewController(在这种情况下是您的模态)不在UINavController您必须以UINavigationItem这种方式访问​​:

someNavigationBar.topItem ...

所以,如果你IBOutlet为你的导航栏设置一个,你的代码应该是这样的:

UIBarButtonItem *Button1 = ...
UIBarButtonItem *Button2 = ...
UIBarButtonItem *Button3 = ...

yourNavigationBar.topItem.rightBarButtonItems = [NSArray arrayWithObjects:Button1, Button2, Button3, nil];
于 2012-04-14T19:28:47.213 回答
0

请添加UINavigationBar而不是UINavigationItem

于 2012-04-14T13:30:44.473 回答