0

我试图设置一个按钮,以便它出现在每个具有导航栏的视图上。使用 AppDelegate 上的外观代理设置所有视图的外观不是问题

[[UINavigationBar appearance] setTintColor:[UIColors grayColor]];

我试图继承 UINavigationController,然后在情节提要上设置导航控制器。在viewDidLoad我尝试过的方法上:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"right"
                                                                         style:UIBarButtonItemStyleBordered target:self action:nil];

但是按钮没有出现。

如果我这样做:

self.navigationBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"right"
                                                                         style:UIBarButtonItemStyleBordered target:self action:nil];

该按钮会显示,但在您进入下一个屏幕后会消失。

我正在尝试这样做,所以我不必在viewDidLoad每个视图控制器的所有方法上设置左右按钮。是否可以使用 UINavigationController 的子类来设置导航栏的属性?

4

1 回答 1

0

Apple 告诉我们不要继承 UINavigationController:

此类不用于子类化。相反,在您希望应用程序的用户界面反映内容的分层性质的情况下,您可以按原样使用它的实例。

这来自文档的 XCode 版本。在线版本放宽了一点,将建议替换为:

此类通常按原样使用,但在 iOS 6 及更高版本中可能是子类。

如何使用修改后的 viewDidLoad 创建 UIViewController 的自定义子类并将所有自定义 VC 建立在此基础上?

于 2013-01-16T02:18:48.233 回答