簡體   English   中英

pushViewController后跟“后退”按鈕有時不會彈出視圖

[英]pushViewController followed by 'back' button sometimes doesn't pop view

我正在使用pushViewController在我的應用程序中推送視圖。 按下后退按鈕的時間約為您期望的95%。 但是,如果我盡可能快地進出視圖,則會遇到頂桿移動的情況,好像彈出了一樣,但是視圖說。 在這種狀態下,我只剩下一個后退按鈕(在正常操作中,我已將此按鈕的文本更改為“取消”)。 按下后將再次為頂部欄設置動畫,然后我在頂部欄中沒有任何按鈕,並且被卡在視圖內。

您有什么想法嗎? 以下是更多詳細信息:

子視圖將這些調用一次或兩次:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];

子視圖也擴展了BaseViewController。 在此基本控制器內部,所有視圖方法都被重載(它們僅稱為super)。 可能有趣的是:

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

- (void)customizeNavigationBar
{
    [self.navigationController.navigationBar setTintColor:UIColorFromRGB(kNavigationBackgroundColor)];
    UIBarButtonItem *backButton_ = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"ID_BUTTON_BACK", @"") style:UIBarButtonItemStyleBordered target:self action:nil];
    self.navigationItem.backBarButtonItem = backButton_;
    [backButton_ release];

}

如果您需要更多代碼,或者我可以更好地解釋,請告訴我。

---編輯----我還將在視圖中調用Google Analytics(分析)。 我記得這會導致我的應用中出現其他問題:

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

    NSError *error;
    if (![[GANTracker sharedTracker] trackPageview:@"/app_new_page"
                  withError:&error]) {    }
}

這段代碼被放在我的實際視圖中(而不是BaseViewController)。

我發現了問題。 問題是我在viewDidLoad中調用了帶有animated:NO的setNavigationBarHidden:NO來顯示沒有動畫的導航欄,但是使用了帶有animation:YES的pushViewContoller。

-----原來-----

[self.navigationController pushViewController:controller animated:YES];

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.navigationController setNavigationBarHidden:NO animated:NO];
}

解決方案是從viewDidLoad中刪除setNavigationBarHidden並將其移動到viewWillAppear中,並以動畫化視圖的方式對其進行動畫處理。 由於我的導航欄是立即顯示的,因此可以在視圖控制器完成動畫設置(推入堆棧)之前按回去,從而導致所有這些問題。

-----解決方案-----

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

感謝您的幫助!

暫無
暫無

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

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