2010-03-28 95 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方法。

相關問題