簡體   English   中英

PopToViewController顯示正確的ViewController,但導航欄錯誤

[英]PopToViewController shows the right ViewController, but the wrong navigationbar

我有一個應用程序,其中第一個視圖是登錄屏幕,並且用戶名和密碼用於整個應用程序的身份驗證。 如果在身份驗證過程中出現問題,則將用戶退回到登錄屏幕,但是如果在用戶按下導航欄中的“后退”按鈕時出現問題,則應用程序會正確顯示登錄屏幕,但導航欄將從應該顯示的視圖中顯示按鈕。

示例:如果用戶按下視圖B上的后退按鈕,並且該應用程序應該顯示視圖A,但是出了點問題,該應用程序將顯示登錄屏幕,但導航欄是視圖A中的一個。

我已經嘗試了一些方法,但是最接近的方法是:在View B的ViewWillDisappear中:

        NSArray * nc = [self.navigationController viewControllers];
    [self.navigationController popToViewController:[nc objectAtIndex:0] animated:YES];

它給出了上面描述的結果。

在您的LoginController中,重寫viewWillAppear:方法並根據需要設置導航欄按鈕:

-(void) viewWillAppear:(BOOL) animated
{
  [super viewWillAppear:animated];

  //Example :
  self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"AText" style:UIBarButtonItemStyleBordered target:self action:@selector(anAction)];
}

如果您不使用ARC,請記住將autorelease添加到leftBarButton Item中:

self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"AText" style:UIBarButtonItemStyleBordered target:self action:@selector(anAction)] autorelease];

成功登錄后刪除登錄屏幕[self.window removeFromsuperview]然后它將從導航中刪除登錄屏幕。 接受我的回答,如果發生的話謝謝

暫無
暫無

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

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