问题描述
我想创建一个带有导航栏和表视图的简单视图。所以我创建了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];