2009-03-27 11 views
8

मेरे पास नेविगेशन नियंत्रक द्वारा उपयोग किए गए बैक बटन को छिपाने का एक तरीका है। यह पिछले नियंत्रक द्वारा सेट किया गया है, न कि वर्तमान दृश्य को प्रबंधित करने वाला, और इससे यह मुश्किल हो जाता है। मुझे संपादन मोड में ऐसा करने की ज़रूरत थी ताकि मैं उपयोगकर्ता को स्क्रीन से दूर जाने से रोक सकूं।क्या इस से backBarButtonItem को छिपाने का कोई बेहतर तरीका है?

if(self.editing) { 
    // Get rid of the back button 
    UIView *emptyView = [[UIView alloc] init];; 
    UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease]; 
    [self.navigationItem setLeftBarButtonItem:emptyButton animated:YES]; 
} else { 
    // Restore the back button 
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];   
} 

क्या ऐसा करने का कोई बेहतर तरीका है?

उत्तर

44

उपयोग इस पीठ को छिपाने के लिए बटन

[self.navigationItem setHidesBackButton:YES] 

इस प्रयोग के बटन वापस दिखाने के लिए

[self.navigationItem setHidesBackButton:NO] 
+2

यह काम करता है, धन्यवाद। एक छोटा अंतर है - कोई एनीमेशन नहीं। मैंने हल किया कि इन संस्करणों के साथ: [self.navigationItem setHidesBackButton: हाँ एनिमेटेड: हाँ]; [self.navigationItem setHidesBack बटन: कोई एनिमेटेड नहीं: हाँ]; –

+0

इस कोड को ViewController में रखना सुनिश्चित करें जहां आप बटन को छुपाएं - पिछले नियंत्रक (जो मूल प्रश्न आवश्यक है) नहीं। –

1

यहाँ विधि मैं मेरे विचार नियंत्रक में उपयोग दिखाने के लिए और वापस बटन को छिपाने के लिए है जब संपादन सक्षम है और अक्षम:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    if (editing) { 
     // Disable the back button 
     [self.navigationItem setHidesBackButton:YES animated:YES]; 
    } 
    else { 
     // Enable the back button 
     [self.navigationItem setHidesBackButton:NO animated:YES]; 
    } 

    [super setEditing:editing animated:animated]; 
} 
0

बी के साथ एक आउटलेट मजबूत (डिफ़ॉल्ट रूप से कमजोर नहीं) स्टोरीबोर्ड से आपके व्यू कंट्रोलर पर एआर बटन। उद्देश्य जब आप बाएं/दाएं बार बटन को शून्य पर सेट करते हैं तो संदर्भ को खोना नहीं है।

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