2009-09-24 71 views
1

這兩行代碼之間有區別嗎?切換選項卡的方法之間的區別

self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1]; 

self.tabBarController.selectedIndex = 1; 

我的應用剛剛墜毀在上面的語句,所以可能有一些內存問題。一種方法比另一種有什麼優點?

回答

0

其實,設置selectedIndex屬性會做和第一條語句類似的事情,但它可能會做更多的檢查。當tabBar中有5個以上的控制器時會有所不同,所以當有「更多」選項卡時。這是個什麼文件告訴我們:

- 的selectedIndex

此屬性名義上代表一個索引viewControllers屬性的陣列。但是,如果所選視圖控制器當前是更多導航控制器,則此屬性包含值NSNotFound。設置此屬性會將所選視圖控制器更改爲viewControllers數組中指定索引處的控制器。要選擇更多導航控制器本身,您必須改變selectedViewController屬性的值。

在版本3.0之前的iPhone OS版本中,此屬性僅反映所選標籤欄項目的索引。試圖將此值設置爲在選項卡欄中不可見但由「更多」導航控制器管理的視圖控制器的索引不起作用。

+0

有趣。謝謝。 – Bryan 2009-09-28 17:07:51