簡體   English   中英

iOS-XCode 4-iPhone 6.0-向后視圖添加后退按鈕

[英]IOS - XCode 4 - iPhone 6.0 - Add back button to subview

注意:IOS開發中的N00b。 在過去的十天左右的時間里,我已經閱讀了一些教程和代碼片段,並且收集了足夠的信息以免發生危險。 我要完成的工作是打開一個Web視圖(作為子視圖)以供用戶登錄,但是由於某種原因,我的導航控制器未顯示“后退”按鈕。 我嘗試了幾種不同的方法,但都無濟於事,顯然我做錯了,所以尋求指導。

我的導航控制器被設置為根控制器,堆棧上的下一個是epViewController。 該視圖控制器是應用程序的起點。 從這個視圖中,我有兩個按鈕,一個用於登錄,一個用於輸入一些數據(與這個問題無關)。

epViewController代碼段:

- (IBAction)buttonToLoginView:(id)sender
{
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/wsapi/user/login"]]];

    [self.view addSubview:webView];
}

這很好用,因為子視圖顯示導航欄和遠程登錄頁面,但沒有后退按鈕。 基於其他一些代碼片段,我嘗試了以下操作(在同一epViewController文件中):

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back???" style:UIBarButtonItemStylePlain target:nil action:nil];

    self.navigationItem.backBarButtonItem = backButton;
}

但是,僅當我單擊該按鈕以輸入一些數據時,才會添加此自定義按鈕(實際上是轉到另一個具體的視圖控制器與子視圖)。

我需要怎么做才能將后退按鈕添加到子視圖中? 在這里甚至建議使用子視圖,我應該將其鏈接到另一個具體的視圖控制器嗎?

可以將導航控制器視為所有實際視圖控制器的容器。 從這個意義上講,導航控制器並不是真正的“堆棧中的第一個”,而epViewController是“堆棧中的下一個”。 相反,導航控制器實際的堆棧,而epViewController是它的第一(也是唯一)項目。 應用啟動時,導航控制器將顯示其根視圖控制器,即您在屏幕上看到的內容。 當您調用導航控制器的pushViewController:方法時,新的視圖控制器將被推入堆棧,並顯示后退按鈕。

對於您而言,建議您不要在主視圖上將Web視圖顯示為子視圖。 而是將其放在自己的視圖控制器中。 在此視圖控制器中,您可以像以前一樣添加后退按鈕。 然后使用[self presentModalViewController:]模態呈現該視圖控制器。 這對用戶而言將更有組織性和流暢性,並且避免了在主視圖上擺弄子視圖的麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM