2011-04-20 6 views
6

पर एक सही "किया गया" बटन (UIBarButtonItem) जोड़ना, मुझे लगता है कि एक समान प्रश्न यहां पूछा गया था: How to add a right button to a UINavigationController? (दूसरों के बीच) लेकिन यह काफी नहीं है जो मैं करना चाहता हूं और वे मेरी समस्या को हल नहीं कर रहे हैं।एक यूआईएनएविगेशन कंट्रोलर

अनिवार्य रूप से, मैंने UViewController को WebViewViewController नामक एक UIWebView के साथ बनाया है जो वर्तमानModalViewController का उपयोग करके दिखाया जाएगा। सफारी लॉन्च करने के बजाय उपयोगकर्ता को ऐप में रखते हुए एक वेब पेज प्रदर्शित करने के लिए अनिवार्य रूप से इसका एक छोटा वेब ब्राउज़र।

व्यू कंट्रोलर इसे दिखाने के लिए निम्नलिखित करता है ... और "किया गया" बटन ब्राउज़र को बंद करने के लिए एक जगह प्रदान करने के लिए है।

-(IBAction)visitFacebook { 
    WebViewViewController *rootController = [[WebViewViewController alloc] init]; 
    rootController.webURL = @"http://www.facebook.com/"; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(done:)]; 

    [navigationController.navigationItem setRightBarButtonItem:doneButton animated:YES]; 
    [navigationController.navigationItem setTitle:@"Facebook"]; 

    if (rootController) { 
     [self presentModalViewController:navigationController animated:YES]; 
    } 

    [doneButton release]; 
    [rootController release]; 
} 

दुर्भाग्यवश "किया गया" बटन प्रदर्शित नहीं हो रहा है .. कोई विचार जहां मैं गलत हो रहा हूं?

उत्तर

6

शायद आप अधिक कुछ इस तरह की तलाश में हैं:

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
             style:UIBarButtonItemStyleDone target:self 
            action:@selector(dismissModalViewControllerAnimated:)]; 
+0

हम्म .. वही बात। मुझे लगता है कि कुछ बड़ी चीज है जो मुझे याद आ रही है। मैं http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/NavigationControllers/NavigationControllers.html के माध्यम से wading कर रहा हूँ, लेकिन मैं अपना समाधान नहीं देख रहा हूँ। – JMattos

10

नीचे

-(IBAction)visitFacebook{ 
WebViewViewController *rootController = [[WebViewViewController alloc] init]; 
rootController.webURL = @"http://www.facebook.com/"; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(done:)]; 

rootController.navigationItem.rightBarButtonItem = anotherButton; 

[navigationController.navigationItem setTitle:@"Facebook"]; 

if (rootController) { 
    [self presentModalViewController:navigationController animated:YES]; 
} 

[doneButton release]; 
[rootController release]; 

} 
+0

बहुत सारे धन्यवाद। कुंजी, जैसा कि मैंने सोचा था, मेरी समझ की कमी थी। – JMattos

+4

कुंजी यह थी कि नेविगेशन Item रूट नियंत्रक की विशेषता है, न कि नेविगेशन नियंत्रक! सही: 'rootController.navigationItem.rightBarButtonItem = donebutton;' गलत: '[navigationController.navigationItem setRightBarButtonItem: donebutton एनिमेटेड: हाँ];' – JMattos

+0

@JMattos: यह आपकी मदद को देखने के लिए खुश .. – Jhaliya

5
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
     style:UIBarButtonItemStylePlain target:self action:@selector(done:)]; 

साथ प्रयास करें बस इस एक पंक्ति कोड मेरे लिए ठीक है बटन का प्रदर्शन किया।

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

  • कोई संबंधित समस्या नहीं^_^