如何将uitoolbar添加到uitableviewcontroller?

时间:2010-03-28 18:29:04

标签: iphone ios uitableview

我有一个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;
 }

不幸的是,当我运行我的应用程序时,我看不到工具栏。 任何提示?我应该做点什么吗?

4 个答案:

答案 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方法。