我有一个UITableViewController,我想用一个按钮添加UIToolbar。在
- (void)viewDidLoad;
UITableViewController的方法我有:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(pressButton1:)];
self.navigationItem.title = @"Some title";
self.navigationItem.leftBarButtonItem = button;
}
不幸的是,当我运行我的应用程序时,我看不到工具栏。 任何提示?我应该做点什么吗?
答案 0 :(得分:3)
如果该控制器未显示在navigationItem
内,则视图控制器的UINavigationController
属性无效。
如果您的视图控制器在导航控制器内,我不知道问题是什么
否则您可以使用UINavigationItem
,但您需要自己创建UINavigationBar
。
在Interface Builder中(添加UINavigationBar
并添加UINavigationItem
,然后将UINavigationItem
连接到声明您的视图控制器的属性插座(您不需要连接Bar)。
或者在你的代码中:
UIBarButtonItem *item = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self action:@selector(pressButton1:)];
UINavigationItem* navItem = [[UINavigationItem alloc] init];
navItem.rightBarButtonItem = item;
navItem.title = @"Your title";
naviBar = [[UINavigationBar alloc] init];
naviBar.items = [NSArray arrayWithObject:navItem];
naviBar.frame = CGRectMake(0.0, 0.0, self.view.frame.size.width, 44.0);
[self.view addSubview:naviBar];
[navItem release];
答案 1 :(得分:2)
您的方法需要自动释放:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(pressButton1:)] autorelease];
self.navigationItem.title = @"Some title";
self.navigationItem.leftBarButtonItem = button;
}
您的代码本身没有任何问题。您的问题表明您要在视图中添加UIToolBar吗?真?或者你只是想为UITableView的NavigationItem添加一个按钮?
答案 2 :(得分:1)
如果你 没有使用UITableViewController并且你的app中没有使用UINavigationController,你可以将你的视图控制器设置为带有工具栏和tableview的常规UIViewController。
要在IB中执行此操作,请拖出UIViewController对象并添加工具栏和tableview。连接两者的出口并将tableview的委托和数据源设置为Files Owner。添加任何其他工具栏项或按钮,如果需要按钮等,则为它们提供插座和方法。在ViewController.h文件中,确保将其注册以符合UITableViewDataSource和UITabBarDelegate:
@interface ViewController : UIViewController <UITableViewDataSource, UITabBarDelegate>
从那里开始,像往常一样构建你的tableview委托和数据源方法,并为你添加到工具栏的任何按钮编写按钮动作方法。
答案 3 :(得分:0)
您刚刚没有显示工具栏。它默认是隐藏的。要修复它,你只需要这行代码:
self.navigationController.toolbarHidden = NO;
我尝试过它并且有效。只需确保放入实现文件的viewDidLoad方法。