2012-01-02 15 views
2

私は現在、このバグを解決するために私の髪を引っ張っています:/私はすでにこのトピックに関して他の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]; 
} 

は、私に知らせてください。

+1

'viewWillAppear:animated:'、 'viewDidAppear:animated:'、 'viewWillDisappear:animated:'、 'viewDidDisappear:animated:'メソッドをチェックしてください。 –

+0

これらのメソッドは、両方のVCで実装されていません。これらのメソッドは、スタックにプッシュされるすべてのView Controllerで実装する必要がありますか? –

+0

これを実装する必要はありません。あなたがそうした場合、あなたはそれらの中で 'スーパー'を呼び出さなければなりません。 –

答えて

11

:-)任意の助けを事前に

おかげで、私はすべてのためにYESを返すために別のビューコントローラのすべてのshouldAutorotateToInterfaceOrientation:のメソッドを更新し忘れたことに、私の場合には、問題の根本的な原因だったことが判明しますUIInterfaceOrientations(または、それらがすべてサムを返すとしましょう)。これを行うことで問題が解決しました。

+0

私は同じような奇妙さを持っていました。右O!この問題は、iOS 5のランドスケープでのみ発生するようです。このアプリケーションは、数年間、iOS 4でうまく動作しています。また、Xcode 4でビルドするときにしか起こらないようです。最近まで、Xcode 3を使ってビルドしましたが、これは決して切り取られませんでした。 – btschumy

+0

Genius !!!私は同じ問題を抱えていました。両方のビューコントローラで、同じことを返す必要がありました: 'return UIInterfaceOrientationIsLandscape(interfaceOrientation);'そして私の問題を解決しました。 –

+0

ありがとうございます - あなたが知っている以上のことを助けました。 –

関連する問題