私は現在、このバグを解決するために私の髪を引っ張っています:/私はすでにこのトピックに関して他のSOスレッドから解決策を試しましたが、出現の開始/終了の不均衡な呼び出し
ここには何が違うのですか: 私はView AからView AをプッシュするUINavigationControllerを持っています。View Bを押してボタンを押しても問題ありません。しかし、私はビュー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を押す方法です:ビューBの
- (void) showConverter:(id)sender {
[self.navigationController pushViewController:converter animated:YES];
}
-viewDidLoad:
- (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];
}
ビューBの-viewDidUnload:あなたは疑問を持っている以上のコードサンプルが必要な場合は
- (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:'メソッドをチェックしてください。 –
これらのメソッドは、両方のVCで実装されていません。これらのメソッドは、スタックにプッシュされるすべてのView Controllerで実装する必要がありますか? –
これを実装する必要はありません。あなたがそうした場合、あなたはそれらの中で 'スーパー'を呼び出さなければなりません。 –