2010-03-28 48 views
2

我有一个UITableViewController,我想用一个按钮添加UIToolbar。在的UITableViewController的如何将uitoolbar添加到uitableviewcontroller?

- (void)viewDidLoad; 

方法,我有:

- (void)viewDidLoad { 
[super viewDidLoad]; 

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                      target:self 
                      action:@selector(pressButton1:)]; 

self.navigationItem.title = @"Some title"; 
self.navigationItem.leftBarButtonItem = button; 
} 

不幸的是我没有看到工具栏,当我运行我的应用程序。 任何提示?我应该做更多的事吗?

回答

3

如果该控制器没有显示在UINavigationController的内部,则视图控制器的navigationItem属性是无用的。
如果您的视图控制器在导航控制器内,我不知道问题是什么。
否则,您可以使用UINavigationItem,但您需要自行创建UINavigationBar。 无论是在界面生成器(添加UINavigationBar并添加UINavigationItem,那么UINavigationItem连接到财产申报的出口您的视图控制器(不需要连接吧)
或者在你的代码:

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]; 
+0

就是这样!我不知道我需要创建UINavigationItem。我认为UITableView已经有一个。谢谢@FenchKiss开发! – Jakub 2010-03-29 19:21:18

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?

+0

谢谢乔丹! 一开始我想在我的视图中使用UIToolbar和UITable View,但是后来我发现我可以利用UITableViewController中的NavigationItem,并且使用上面的代码。如果没有任何错误,那么为什么我没有看到工具栏? – Jakub 2010-03-28 19:27:10

+0

你检查你的IB连接吗?什么显示?也许你可以发布一些代码? – Jordan 2010-03-28 22:03:09

1

如果你不这样做使用一个UITableViewController,并且不使用你的应用程序一个UINavigationController已经,您可以设置您的视图控制器最多可与一个工具栏和实现代码如下定期的UIViewController。

要做到这一点在IB中,拖出一个UIViewController ob ject并添加一个工具栏和tableview。连接两个插座,并将tableview的委托和数据源设置为文件所有者。添加任何其他工具栏项目或按钮,并给他们网点和方法,如果你需要他们的按钮等在你ViewController.h文件,请确保您注册起来,以符合UITableViewDataSource和UITabBarDelegate:

@interface ViewController : UIViewController <UITableViewDataSource, UITabBarDelegate> 

从那里开始,像通常那样构建你的tableview委托和数据源方法,并为你添加到工具栏的任何按钮编写你的按钮操作方法。

0

你刚才没有显示工具栏。它默认是隐藏的。要修复它,你只需把这行代码:

self.navigationController.toolbarHidden = NO; 

我试过了,它工作。只要确保你放入了实现文件的viewDidLoad方法。

相关问题