我目前正在拉我的頭髮解決這個錯誤:/我已經嘗試了其他SO線程關於此主題的解決方案,但迄今沒有運氣。不平衡的呼叫開始/結束外觀轉換
這是什麼錯誤: 我有一個UINavigationController,推視圖A,從視圖A我可以按下按鈕推視圖B - 工作正常。但是,當我按下View B,然後將屏幕旋轉到橫向模式,然後單擊後退按鈕,在控制檯中得到以下輸出,並且視圖切換不是動畫,只是從B切換回A:
2012-01-02 20:50:42.866 [13345:f803] Unbalanced calls to begin/end appearance transitions for <DimensionConversionViewController: 0x68831f0>.
2012-01-02 20:50:42.868 [13345:f803] attempt to dismiss modal view controller whose view does not currently appear. self = <UINavigationController: 0x6b541a0> modalViewController = <UISnapshotModalViewController: 0x6da5190>
這是我推視圖B進棧:
- (void) showConverter:(id)sender {
[self.navigationController pushViewController:converter animated:YES];
}
查看-viewDidLoad的B:
- (void) viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateInterface) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
// ... Update text fields ...
[self updateInterface];
}
-viewDidUnload查看B的:
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"UIDeviceOrientationDidChangeNotification" object:nil];
}
如果您有疑問或需要更多的代碼示例,請讓我知道。
預先感謝:-)
檢查你的'viewWillAppear:animated:','viewDidAppear:animated:','viewWillDisappear:animated:',和'viewDidDisappear:animated:'方法。 – 2012-01-02 20:19:30
這兩種方法在VC中都沒有實現。這些方法是否應該在所有推入堆棧的視圖控制器中實現? – 2012-01-02 20:25:37
您不必執行它們。如果你這樣做,你必須在其中調用'super'。 – 2012-01-02 20:50:57