2010-03-25 11 views
10

मैंने UITabBarController के बिना UITabBar और UITabBarItems बनाए हैं, अब मैं जानना चाहता हूं कि UITabBarItem के क्लिक पर कार्रवाई कैसे करें। UITabBarItem पर कार्रवाई के लिए मुझे किस विधि का उपयोग करना चाहिए?UITabBarItem के लिए कोई क्रिया कैसे बनाएं?

+0

मानव इंटरफ़ेस दिशानिर्देशों के अनुसार, टैब बार दृश्यों को बदलने के लिए हैं। क्या आप वाकई टूल बार का उपयोग नहीं करना चाहते हैं? –

उत्तर

2

क्या आप एक UINavigationController का उपयोग कर रहे हैं? यदि हां, तो सक्रिय दृश्य नियंत्रक उपवर्ग से आप navigationItem हो और इसे करने के लिए बटन जोड़ने, उदा .:

- (void) viewWillAppear:(BOOL)animated; 
{ 
    [super viewWillAppear: animated]; 
    UIBarButtonItem * leftButtonItem = [[[UIBarButtonItem alloc] initWithTitle: @"Don't Show Again" style: UIBarButtonItemStyleBordered target: self action: @selector(permanentlyCloseWelcomeView)] autorelease]; 
    [[self navigationItem] setLeftBarButtonItem: leftButtonItem]; 
} 
+0

नहीं ... मैं किसी भी नियंत्रक का उपयोग नहीं कर रहा हूं .. – suse

20

आप सीधे एक UITabBarItem वस्तु पर एक कार्रवाई निर्धारित नहीं कर सकते। इसके बजाय, अपने दृश्य नियंत्रक निम्नलिखित UITabBarDelegate विधि को लागू करना चाहिए:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item; 

इस विधि जब उपयोगकर्ता एक टैब का चयन करता है कहा जाता है (अर्थात UITabBarItem)। आप एक कार्रवाई बनाने प्रत्येक TabBarItem के लिए :

+0

यह मेरे लिए काम करता है लेकिन Tabd के प्रतिनिधि को 'self' में viewdidload() – crackles

-2

didSelectItem की तुलना में एक बेहतर तरीका नहीं है
[item1 setAction:@selector(pressItem1:)];
[item2 setAction:@selector(pressItem2:)];
[item3 setAction:@selector(pressItem3:)];
[item4 setAction:@selector(pressItem4:)];
और फिर आप नए कार्यों का उपयोग कर सकते हैं:

-(void)pressItem1:(UITabBarItem *) item1 {<br/> 
    // Here comes your code which<br/> 
    // occurs after pressing item1.<br/> 
} 

जो मुझे

+1

में सेट करना याद रखें, आप एक निजी एपीआई का उपयोग कर रहे हैं। ऐप्पल इसे स्वीकृति नहीं देगा – user102008

+0

हां जैसा लगता है। यह एक निजी एपीआई है। – Dilshan

1

लिए काम करता है सकते हैं आप इसके बजाय UIToolbar और UIBarButtonItem के उदाहरणों का उपयोग करने से दूर हो जाओ? यह अधिक सरल हो सकता है।

toolBar = [[UIToolbar alloc] init]; 
newPlayerItem = [[UIBarButtonItem alloc] initWithTitle:@"+" 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(newPlayer:)]; 

NSArray *toolBarItemsArray = [[NSArray alloc] initWithObjects:newPlayerItem, nil]; 
[toolBar setItems:toolBarItemsArray]; 
[toolBarItemsArray release]; 
संबंधित मुद्दे