0

popToViewControllerメソッドを使用してViewControllerにポップしています。私が達成しようとしていたのは、UITabBarControllerの特定のインデックスにポップすることです。

NSArray *viewArrays = [self.navigationController viewControllers];

つまり、私のビュー階層は次のとおりです。

<LoginViewController: 0x6b75850>,
<UITabBarController: 0x6ba0b50>,
<RequestViewController: 0x684fe90>,
<ApplyViewController: 0x6845790>

次のコードはUITabBarControllerにポップしますが、UITabBarControllerの3番目のビューにいたため、3番目のビューにポップバックします。

[[self navigationController] popToViewController:[self.navigationController.viewControllers objectAtIndex:1]  animated:YES];

私が欲しいのは、UITabBarControllerの2番目のビューにポップすることです。

編集(回答)

述べたように、私たちはプッシュしたりポップしたりしません。したがって、tabBarControllerを収集するには、次のいずれかを使用します。

UITabBarController *myTabController = [self.navigationController.viewControllers objectAtIndex:indexOfYourTabBarControllerInYourNavigationController];
myTabController.selectedIndex = indexToGo;

または、tabBarControllerビューの1つを使用している場合。

self.tabBarController.selectedIndex = indexToGo;
4

1 に答える 1

2

UITabBarControllerでは、ポップしてプッシュしないでください。2番目のビューに移動する場合は、代わりに選択したインデックスを設定します。

そのようです

yourTabController.selectedIndex = 1;

または、現在のView ControllerがtabBarControllerの一部である場合は、

self.tabBarController.selectedIndex = 1;
于 2012-06-24T13:07:38.017 に答える