UIBarButton不会在我的UINavigationController中显示
我想创建一个带有导航栏和表视图的简单视图。所以我创建了UINavigationController
的一个子类,并在其中添加了一个UITableView
。我的IS也是UITableViewDataSource
和UITableViewDelegate
。现在我想在导航栏中添加UIBarButton
,但它不起作用:
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:[[Translator instance] getTranslation:@"Back"]
style:UIBarButtonItemStylePlain
target:self.parentViewController
action:@selector(dismissFiltersModal:)];
self.navigationItem.backBarButtonItem = anotherButton;
没有错误地显示了视图,但没有显示按钮。我如何才能显示它?
解决方案
jafar,
正如Apple文档建议您应避免子类UINavigationController
。
此类不用于子类化。
说到这里,你可以遵循这些简单的步骤(给你的一些建议):
- 创建扩展
UIViewController
的控制器(比如MyController
),并在此处添加表格。将您的控制器设置为该表的代理和数据源。如果您是由XIB创建的,则需要为您的表视图提供插座。
[P.S。您还可以子类化aUITableViewController
,它有自己的表视图]
- 在
MyController
的viewDidLoad
中自定义导航栏。
例如
UIBarButtonItem* myButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(someSelector)];
self.navigationItem.leftBarButtonItem = myButton;
您还可以自定义标题。
例如
self.title = @"Your custom title";
- 在代码中的某个位置创建
UINavigationController
,并将MyController
的实例添加为根视图控制器。
例如:
MyController* myCtr = // alloc-init here
UINavigationController* nc = [[UINavigationController alloc] initWithRootViewController:myCtr];
相关文章