2010-10-28 6 views
19

मूल रूप से मैं जानना चाहता हूं कि दृश्य नियंत्रक मैं रूट व्यू नियंत्रक हूं या नहीं।कैसे पता लगाएं कि UIViewController रूट व्यू कंट्रोलर है या नहीं?

यदि नहीं, तो मैं एनएवी बार में एक बटन रखना चाहता हूं जो "बैक" कहता है (जैसे कि यह एक उचित बैक बटन था - यह बिट मुझे पता है कि कैसे करना है)।

इससे पहले कि आप पूछें, मैंने अपने दृश्य नियंत्रकों से सभी खिताब हटा दिए हैं - मैं नहीं चाहता था कि वे मेरे नेविगेशन बार पर दिखें ... यह बहुत जटिल है - लेकिन इसका मतलब है कि जब मैं अपने नेविगेशन स्टैक से गुज़रता हूं धक्का दृश्य नियंत्रकों में से कोई भी बैक बटन नहीं है। :/

धन्यवाद टॉम

+1

तुम बस प्रत्येक दृश्य नियंत्रक के navigationItem की backBarButtonItem संपत्ति की स्थापना द्वारा एक ही बात को प्राप्त कर सकते। नेविगेशन नियंत्रक शीर्षक के बजाए इसका उपयोग करेगा और आपके लिए नेविगेशन का ख्याल रखेगा। –

+0

ओह दाएं .... क्या ऐप में प्रत्येक बैक बटन पर ऐसा करने का कोई तरीका है? उदाहरण के लिए कुछ श्रेणी कोड या कुछ के साथ? –

+0

यदि आपके पास बहुत सारे व्यू कंट्रोलर क्लासेस हैं लेकिन आप चाहते हैं कि बैक आइटम प्रत्येक में समान हों, तो आप उन नियंत्रकों के लिए एक सामान्य अभिभावक बना सकते हैं और आइटम को उस init में सेट कर सकते हैं। –

उत्तर

61
if (self != [self.navigationController.viewControllers objectAtIndex:0]) 
{ 
    // Put Back button in navigation bar 
} 
+0

शानदार। :) धन्यवाद। –

+0

अच्छा! धन्यवाद;) –

7

तुम भी कोशिश कर सकते हैं:

if (self.navigationController.viewControllers.count == 1) { 
    NSLog(@"self is RootViewController"); 
} 
+1

बहुत बढ़िया, धन्यवाद – AamirR

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