[英]iPhone SDK: How to get the selected tabitem on a tabbar?
我有這段代碼-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
我正在尋找的是一個代碼段,該段代碼說明了如何檢測大概是使用item的代表中按下了哪個按鈕。
因此,也許我的標簽欄上排列了1-4個按鈕。 我的用戶按下按鈕位置2。我需要知道這一點,因此我可以調出適合該按鈕的視圖。
我嘗試了類似的方法,但是沒有用。
NSInteger *barIndex = [[barTab items] IndexofObject:item];
如果有人可以提供一些可行的示例代碼,那就太好了。
提前致謝。
當您創建UITabBarItem
時,您需要為它們分別指定一個特定標簽。 - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
方法時,請讀出標記號。
NSInteger tag = item.tag;
使用項目的索引不適用於標簽欄,因為用戶可以更改標簽的順序。
優良作法是為每個標簽使用一個枚舉,這樣就不會在代碼中散布一堆“隨機”數字。
typdef enum {
JPButton1,
JPButton2,
JPButton3
} JPButtonType
然后在您的tabBar:didSelectItem:
方法中,您可以像這樣測試標記:
if (item.tag == JPButton1) {
// do some stuff with button one here
}
我意識到這個問題已經很老了,但這也許將來會對某人有所幫助:
UITabBarController具有一個名為selectedIndex的屬性。 例如,如果將UITabBarController聲明為myTabBar ,則始終可以通過調用來獲取當前選定的選項卡索引
[myTabBar selectedIndex]
第一個選項卡等於0,第二個選項卡等於1,依此類推...
我知道這則帖子已經有好幾年了,但是您使用的是正確的路線,而不是使用
NSInteger *barItem = [[tabBar items] indexOfObject:item];
你需要使用
int barItem = [[tabBar items] indexOfObject:item];
這是因為
indexOfObject:item
將返回一個int而不是NSInteger。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.