12

क्या कोई जानता है कि UINavigationController के rightBarButtonItem को कैसे छिपाना है? मेरे आवेदन में, मेरे पास UINavigationController के rightBarButtonItem के रूप में एक संपादन बटन है। मैं इसे छिपाना चाहता हूँ? UIBarButton` जब कुछ ऑपरेशन किए जाते हैं।दाईं ओर छुपाएं नेविगेशन नियंत्रक

+0

'self.navigationItem.rightBarButtonItems [1] setEnabled: NO];' यदि आपके पास कोई सरणी है, जैसे कि आप लचीली जगह का उपयोग करते हैं। –

उत्तर

11

self.navigationItem.rightBarButtonItem = nil; 

प्रयास करें कि आप एक बटन यानी

UIBarButtonItem *rightBarButton = 
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch 
               target:self 
               action:@selector(searchBar:)]; 
self.navigationItem.rightBarButtonItem = rightBarButton; 
[rightBarButton release]; 
+1

क्या होगा यदि मैं ऑब्जेक्ट को फिर से बनाना नहीं चाहता हूं? उदाहरण के लिए, मैं नेविगेशनबार के शीर्षक पर खोज के विस्तृत फ्रेम के लिए सही बार्बटन को छिपाना चाहता हूं। मेरा मतलब है, संपत्ति या कुछ बदलकर छिपाना संभव है? –

+0

यदि आप UINavigationController को उपclass करना चाहते हैं। आप कर सकते हैं: self.topViewController.navigationItem.rightBarButtonItem = rightBarButton; स्वयं आपका यूएनएविगेशन कंट्रोलर कस्टम क्लास –

15

सही बटन छिपाने के लिए instanciate करना होगा जब आप इसे वापस चाहते हैं: अब self.navigationItem.rightBarButtonItem = nil;

, यह दिखाने के लिए:

  1. यदि आप अपने व्यू कंट्रोलर में दाएं बटन को self.editButtonItem को असाइन करके सेट करते हैं तो उसे इसे दिखाने के लिए बस इसे फिर से असाइन करें:

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

  2. यदि आप UIBarButtonItem आवंटित और इनसाइट करके अपने व्यू कंट्रोलर में दायां बटन सेट करते हैं, तो बस अपने व्यू कंट्रोलर में UIBarButtonItem का संदर्भ रखें, और इसे दिखाने के लिए इसे फिर से असाइन करें।

+0

है, मैंने उद्देश्य सी में शून्य करने के लिए सही बार्बटन इटिम को असाइन करने का प्रयास किया है, यह मेरे लिए काम नहीं करता है –

10

आप को छिपाने के लिए की जरूरत है/कुछ शर्त के आधार पर बटन दिखाने के लिए, इस प्रयास करें:

if (condition) { 
    self.navigationItem.rightBarButtonItem.title = @""; 
    self.navigationItem.rightBarButtonItem.enabled = NO; 
} else { 
    self.navigationItem.rightBarButtonItem.title = @"my button title"; 
    self.navigationItem.rightBarButtonItem.enabled = YES; 
} 

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

संबंधित मुद्दे