2010-07-22 44 views
1

我有一個問題,現在找不到一整天的解決方案。我是iPhone SDK的新手,所以我想我只是錯過了一些東西。iPhone SDK問題:加載TableView whitin TabBarControlled視圖

我的應用程序包含一個TabbedNavigation,有三個ViewControllers。一切按預期工作。現在我想打開一個新的視圖(最好從NIB),當用戶選擇一個按鈕(不是選項卡按鈕...)。按鈕的操作方法按預期調用。但是,我沒有加載新的(表格)視圖。

我儘量給你一些代碼,說明我的情況:

首先,在我的應用程序的委託的didFinishLaunchingWithOptions我加載tabBarController的視圖(TabBarController爲代表的屬性):

// Add the tab bar controller's view to the window and display. 
[window addSubview:tabBarController.view]; 
[window makeKeyAndVisible]; 

如預期的那樣,應用程序啓動時會顯示TabController的第一個ViewController。此viewController具有其自定義的ViewController類,其中按鈕的操作方法位於該類中。我的行動方法如下:

-(IBAction)filtersButtonPressed:(id)sender { 

    FiltersTableViewController *filtersViewController = 
    [[FiltersTableViewController alloc] initWithNibName:@"Filters" bundle:nil]; 

    [[[super tabBarController] navigationController] pushViewController:filtersViewController]; 
} 

這,不知何故,不工作...我嘗試了幾件事當然 - 沒有成功。

你們有人能指點我嗎?只要按下一個按鈕即可獲得全新視圖,這不是那麼難...

在此先感謝!

Chers,pawi

回答

0

建議你嘗試展示新的「過濾器」視圖模態視圖控制器。試着改變你的代碼:

-(IBAction)filtersButtonPressed:(id)sender { 

    FiltersTableViewController *filtersViewController = 
     [[FiltersTableViewController alloc] initWithNibName:@"Filters" bundle:nil]; 
[self presentModalViewController:filtersViewController animated:YES]; 

這將向上滑動過濾器視圖控制器上當前視圖的頂部(儘管你可以,如果你想改變的動畫效果)。爲了擺脫這一點,當用戶與視圖後,調用

[self dismissModalViewControllerAnimated:YES]; 

編輯: 如果你真的想使用導航控制器到視圖壓入堆棧,用

[self.navigationController pushViewController:filtersViewController]; 
+0

嘿h4xxr, 你已經救了我的一天,10分鐘後開始工作;-) 訣竅是使用presentModalViewController法之後。我真的沒有看到這與使用navigationController的區別。從我閱讀的內容來看,我猜想它會將視圖推向全屏,從而覆蓋tabBar-Views。 順便說一句:使用self.navigationController pushViewController方法不起作用。 感謝您的快速幫助! Cheerz,pawi – pawi 2010-07-23 07:21:42

+0

很高興幫助。如果self.navigationController不起作用,請檢查您是否在NIB文件中正確連接了... – h4xxr 2010-07-23 08:31:19