2012-08-14 78 views
0

我想找到一種方法來使TabBar的項目充當「UIbutton」。 我想當按這個項目只是使其作爲ibaction方法工作。連接到ibaction的Tabbar項目

我嘗試了幾種實現爲:

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{ 
    } 

但我沒能拿到方法工作。

什麼是最好的解決方案,僞造一個tabbar的項目功能,並打開一個UIActionSheet例如?

+0

您是否分配了標籤欄代表? – 2012-08-14 15:49:55

+1

我懷疑你是否會堅持HCI的指導方針,做你正在做的事,但嘿,這是你的設計! – Ravi 2012-08-14 15:53:03

回答

-1

在所選標籤欄項目視圖的viewDidLoad方法中調用您的操作方法。

0

您可以嘗試tabBarController shouldSelectViewController委託方法。覆蓋這個。在要顯示ActionSheet的選項卡上返回NO,而是在此方法中實例化ActionSheet。

您將需要一個佔位符UIViewController來替代此選項卡。

如上所述,這違反了Apple HIG,可能是您的應用遭到拒絕的原因。

1

嘗試在您的viewController中使用IBOutlet和UITabBarDelegate。

@interface MyViewController : UIViewController <UITabBarDelegate> { 
    IBOutlet UITabBar* tabBar; 
} 
@end 

將UITabBar連接到Interface Builder中的IBOutlet。

將委託給你的viewController的viewDidLoad方法「自我」:

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    tabBar.delegate = self; 
} 

,併成立了委託方法用一些方法來區分標籤:

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 
{ 
    NSLog(item.title); 
    if([item.title isEqualToString:@"some label"]) { 
    // do something for this specific button 
    } 
} 

(這是一個老但是我有同樣的問題,希望這可以節省別人同樣的麻煩。)