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