2011-04-19 21 views
0

我爲iPhone創建了一個TabBarController應用程序,該應用程序具有帶tabBar,兩個tabBar按鈕和兩個附加視圖的mainView.xib。其他視圖有一個UIMapkit和一個UITableView。我想要做的是在tableview中,我想在用戶選中某行時調用UIMapKit視圖。如何調用所有的XIB/NIB文件屬性?

我所做的:

- (空)的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath {

MapViewController *NView = [[MapViewController alloc] 
          initWithNibName:nil 
          bundle:[NSBundle mainBundle]]; 

[self presentModalViewController:NView animated:YES]; 

}

它創建了行的動作。我的問題是,它只顯示UIMapKit而不是tabBarController。

TabBarController位於mainWindow中。

是否有一些我錯過的代碼?

回答

0

如果您需要切換到帶有地圖的選項卡,方法/屬性selectedViewController or selectedIndex of UITabBarController應該會對您有所幫助。

+0

非常感謝。我得到它的工作: self.tabBarController.selectedIndex = 0; – Henry 2011-04-19 19:25:40

+0

不客氣:)但請看看@ Mike的回答 - 他可能對你的應用程序的設計非常正確 – adubr 2011-04-19 19:33:33

0

通過您的標籤,我假設您使用iPhone而不使用iPad。在iPhone上,模式視圖佔據了整個屏幕,覆蓋了選項卡欄等。這是通過設計並且無法更改的。 所以你需要像@adubr所說的那樣做,並設置TabBarController的選定索引。但是你也需要從你的表格視圖中獲取行索引到地圖上(假設地圖的顯示方式根據你點擊的表格行而不同)。所以我不認爲標籤欄真的是你想要的東西。 看起來你需要一個UINavigationController,然後tableViewController可以創建一個NView實例並將其推送到導航控制棧。