1
我有做一些運算的觀點,我想在這段時間隱藏後退按鈕。變化動態知名度在UINavigationBar的
我使用它來打開,有一個後退按鈕一個新的控制器和取消按鈕:
[self.navigationController pushViewController:calcController animated:YES];
這是我開始計算,所有在主線程:
- (void)startSth {
self.viewMode = modeRunning;
[self updateButtons];
[self performSelector:@selector(doSth) withObject:nil afterDelay:0.1];
}
- (void)doSth {
...
self.viewMode = modeFinished;
[self updateButtons];
}
這是應該切換按鈕的可見性的方法:
- (void)updateButtons {
BOOL busy = (self.viewMode==modeRunning);
self.navigationItem.hidesBackButton = busy; //back button
self.navigationItem.rightBarButtonItem.enabled = !busy; //cancel button
}
問題:在fi首先運行它按預期工作,按鈕被隱藏,然後再次顯示。 單擊後退按鈕時,視圖會彈出。第二次運行時,按鈕從一開始就缺失。該方法updateButtons被稱爲兩次,記錄變量self.viewMode忙顯示正確的行爲(第1再0),所以很明顯調用hidesBackButton不工作。
我還嘗試使用設置navigationItem.backButton的例子,使用自定義空按鈕,調用setNeedsDisplay或setHidesBackButton:animated:,都沒有成功。
任何想法?