- (void)viewWillDisappear:(BOOL)animated
{
if ([self.navigationController.viewControllers indexOfObject:self] == NSNotFound) {
if ([self.navigationController.viewControllers.lastObject isKindOfClass:[CustomViewController class]]) {
NSArray *tempArr = self.navigationController.viewControllers;
self.navigationController.viewControllers = tempArr;
[self.navigationController popViewControllerAnimated:YES];
return;
}
}
[super viewWillDisappear:animated];
}
ユーザーが戻るボタンを押し、前の UIViewController が CustomViewController の場合、最後の 2 つの UIViewControllers をポップし、それ以外の場合は最後の UIVIewController を 1 つポップします。
これらの文字列は何の意味もないと思います:
NSArray *tempArr = self.navigationController.viewControllers;
self.navigationController.viewControllers = tempArr;
しかし、それらを削除すると、最後の 2 つの UIViewController をポップし、現在の UIViewController のタイトルではなく、CustomViewController のタイトルを取得します。
バグですか?そして、このコードは iOS 6 で動作しますか?