2011-04-20 68 views
6

我看到一個類似的問題在這裏被問到:How to add a right button to a UINavigationController?(其他),但它不是我想要做的,而且他們不解決我的問題。向UINavigationController添加一個正確的「完成」按鈕(UIBarButtonItem)

本質上,我創建了一個名爲WebViewViewController的UIViewController,它上面有一個UIWebView,它將使用presentModalViewController進行顯示。本質上,它是一個迷你網頁瀏覽器,用於顯示網頁,同時保持用戶在應用程序中,而不是啓動Safari。

viewController執行以下操作來顯示...以及「完成」按鈕旨在提供關閉瀏覽器的位置。

-(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,但我沒有看到我的解決方案。 – JMattos 2011-04-20 03:10:21

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 2011-04-20 03:48:29

+4

關鍵是導航項是一個根控制器的屬性,而不是導航控制器! 正確: 'rootController.navigationItem.rightBarButtonItem = doneButton;' 不正確: '[navigationController.navigationItem setRightBarButtonItem:doneButton動畫:是];' – JMattos 2011-04-20 03:50:39

+0

@JMattos:高興看到它幫助你.. – Jhaliya 2011-04-20 03:59:05

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

只是這一行代碼顯示完成按鈕我。

相關問題