2010-05-26 13 views
6

में कोई टैब नहीं चुनें, मैं अपने आवेदन में बिल्कुल कोई टैब चुनने का प्रयास नहीं कर रहा हूं। पहले पहले टैब का चयन किया जाता है, लेकिन मैं इसे अचयनित करना चाहता हूं इसलिए कोई भी टैब चयनित नहीं होगा।UITabBar

मुझसे मत पूछो क्यों, यह वैसे ही ग्राहक चाहता है! हेहे

आपकी मदद के लिए धन्यवाद!

पुनश्च: मैं पहले से ही करने की कोशिश की:

// rootController = UITabBarController  
rootController.tabBar.selectedItem = 0; 
rootController.tabBar.selectedItem = nil; 
[rootController setSelectedIndex:[rootController.items objectAtIndex:0]]; 
[rootController setSelectedIndex:nil]; 
[rootController setSelectedIndex:0]; 
// That one works : (but I can't select 0 or -1 for instance) 
[rootController setSelectedIndex:2]; 

कोई भी विचार? एक बार फिर धन्यवाद!

+0

क्या आपको इस मुद्दे का कोई समाधान मिला है? मुझे इस मुद्दे का समाधान भी मिल रहा है, अगर आपको समाधान मिल गया तो मुझे बताएं। –

उत्तर

0

documentation से:

यह दृश्य नियंत्रक जिसका कस्टम दृश्य वर्तमान टैब बार इंटरफ़ेस द्वारा प्रदर्शित किया जाता है। निर्दिष्ट दृश्य नियंत्रक दृश्य नियंत्रक सरणी में होना चाहिए। इस प्रॉपर्टी में एक नया व्यू कंट्रोलर असाइन करना वर्तमान में प्रदर्शित दृश्य को बदलता है और टैब बार में एक उचित टैब भी चुनता है। व्यू कंट्रोलर बदलना तदनुसार चयनित इंडेक्स प्रॉपर्टी को अपडेट करता है। इस संपत्ति का डिफ़ॉल्ट मूल्य शून्य है।

तो, मुझे लगता है कि आपको [rootController setSelectedViewController: nil]; की आवश्यकता होगी।

अद्यतन:

थोड़ा स्पष्ट करने के लिए,

[self.tabBarController setSelectedViewController:nil];

वहाँ भी है preventing the selection of tabs पर प्रलेखन कि उपयोगी हो सकता है।

+0

जैसा कि मैंने अपने प्रश्न के कोड बिट में कहा था: यह काम नहीं करता है, यह इस कारण से दुर्घटनाग्रस्त हो जाता है: 2010-05-26 12: 35: 22.091 प्रीमियर सिक्के [844 9: 207] *** - [UITabBarController चयनित दृश्य नियंत्रक:]: अज्ञात चयनकर्ता उदाहरण 0x4b43fb0 2010-05-26 12: 35: 22.093 प्रीमियर सिक्के [844 9: 207] *** बिना अपवाद अपवाद के कारण ऐप को समाप्त करना 'एनएसआईएनवालिडअर्ग्यूमेंट एक्सेप्शन', कारण: '*** - [UITabBarController चयनित दृश्य नियंत्रक:]: अपरिचित उदाहरण 0x4b43fb0 ' – TomShreds

+0

पर भेजा गया चयनकर्ता किसी भी समय आपके प्रश्न में कोड' चयनित दृश्य नियंत्रक 'का उल्लेख नहीं करता है। 'सेट सेलेक्टेड इंडेक्स:' वही बात नहीं है। –

+0

आपको '-setSelectedViewController:' को कॉल करने की भी आवश्यकता होगी, न केवल 'चयन किया गया दृश्य नियंत्रक:' ... –

7

यदि आप UITabBarController के बिना UITabBar इंस्टेंस का उपयोग कर रहे हैं तो आप सभी टैब बार आइटम को अचयनित कर सकते हैं।

नीचे दिए गए मामले में कोड अच्छी तरह से काम करता है।

[tabBar setSelectedItem:nil]; 

हैं UITabBar UITabBarController तो आवेदन का एक हिस्सा अपवाद के साथ दुर्घटना जाएगा:

'प्रत्यक्ष रूप से बदलाव एक टैब बार एक टैब बार नियंत्रक द्वारा कामयाब अनुमति नहीं है।'

दूसरे शब्दों में यदि आप यह काम करना चाहते हैं तो आपको बिना नियंत्रक के टैबबार के दिनचर्या प्रबंधित करने की आवश्यकता है।

+0

वाह यह एक वास्तविक चाल है – code4j

1

मैं अंत में यह निम्नलिखित कोड का उपयोग कर करने में कामयाब रहे:

 DefaultView *defaultView = [[DefaultView alloc]initWithNibName:@"DefaultView" bundle:[NSBundle mainBundle]]; 
     [self.tabBarController setSelectedViewController:nil]; 
     [self.tabBarController setSelectedViewController:defaultView]; 

ध्यान दें कि सिर्फ [self.tabBarController setSelectedViewController:nil]; कर कुछ नहीं करेंगे। आप पर एक दृश्य नियंत्रक निर्दिष्ट करें। यह दृश्य नियंत्रक को कोई टैबबार आइकन चयनित नहीं किया जाएगा। अन्य टैबबार विकल्पों को चुनने पर, डिफ़ॉल्ट दृश्य गायब हो जाएगा और आवश्यक दृश्य लोड हो जाएगा।

+2

यह काम करने के लिए उपयोग किया जाता है लेकिन आईओएस 5.0 के बाद टूटा हुआ है। कोड की तीसरी पंक्ति पर, निम्न त्रुटि पॉप हो जाएगी: 'टैब बार नियंत्रक की दृश्य नियंत्रकों की सूची में केवल एक दृश्य नियंत्रक का चयन किया जा सकता है।' – scalbatty

+1

मेरे लिए काम नहीं कर रहा है। –

2

मैं सिर्फ इस सवाल में आए और यह वास्तव में बहुत सरल है:

tabBarController.selectedViewController = viewController; 

यह कुछ हद तक HG का जवाब देने के लिए समान है, लेकिन नहीं के बराबर करने के लिए चयनित दृश्य नियंत्रक की स्थापना अनावश्यक है।

0

क्या बेहतर तरीके हैं?

use [self.tabBarController setSelectedViewController:nil], 
Warning : "-[UITabBarController setSelectedViewController:] only a view controller in the tab bar controller's list of view controllers can be selected." 
0

मुझे लगता है कि rootController.tabBar.selectedItem = 0;

यह गलत जो कुछ भी आप की कोशिश की है है। क्योंकि जब आप selectedItem=0 सेट कर रहे हैं, तो सुनिश्चित करें कि यह tabBarController का पहला टैबबारैटम लेगा।

1

जब चाहें चयनित छवि को बदलने के लिए बेहतर & अपनी आवश्यकता के हिसाब से एक दृश्य छुपाएं या दिखाएं। यहां कोड का मेरा टुकड़ा जो समझने में मदद कर सकता है:

-(void)viewWillAppear:(BOOL)animated{ 
    if ([[NSUserDefaults standardUserDefaults]integerForKey:@"flagAsk"]) { 
     UITabBarItem *firstTab = [self.tabBarController.tabBar.items objectAtIndex:0]; 
     firstTab.selectedImage = [[UIImage imageNamed:@"Ask2"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
       vieToHide.hidden=YES; 
    } 
    else{ 
     UITabBarItem *firstTab = [self.tabBarController.tabBar.items objectAtIndex:0]; 
     firstTab.selectedImage = [[UIImage imageNamed:@"Ask"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
     vieToHide.hidden=NO; 
    } 
} 
संबंधित मुद्दे