1

タブベースのアプリケーションでタブを切り替えているときに、ナビゲーションのBackBarButtonとViewを検出する必要があります。どうすればこれを達成できますか。コードサンプルが必要です

4

1 に答える 1

1

NavigationBarは、プッシュされたviewControllerがロードされた後に描画されます。また、そのmodalViewControllerは、navigationControllerの「スタック」のtopViewControllerの上にあります。UINavigationControllerの戻るボタンが押されたことを検出するには、現在のViewControllerがNavigationControllerのViewControllerスタックに存在しないことを確認します。この状態は、論理的にアニメーション化された-(void)viewDidDisappear:(BOOL)で安全にチェックできます。メソッドが呼び出されるまでに、ViewControllerがスタックから削除された可能性が非常に高くなります。ビューの切り替えまたは同じビューは、navigationController.topViewControllerを使用して検出でき、backBarButtonItemはisKindOfClassを使用してトリガーされます。これが私のために働く例です。

- (void)viewDidDisappear:(BOOL)animated{
if ([self.navigationController.topViewController isKindOfClass:[SDWebImageRootViewController class]]) {
    NSLog(@"Is kind of");
    //condition goes here
  }
if (!self.navigationController.topViewController) {
    NSLog(@"Is kind of topViewController");
   //condition goes here
}

}

于 2012-08-22T08:48:09.350 に答える