我有一个应用程序,我从viewcontroller.testviewcontroller推送一个testviewcontroller有一个后退按钮和一个是按钮。当按下后退按钮时,我将使用
回到上一个按钮[self.navigationController popViewControllerAnimated:YES];
按下Yes按钮时我正在使用
按下另一个视图控制器 GettingViewController *get =[[GettingViewController alloc] initWithNibName:@"GettingViewController" bundle:nil];
[self.navigationController pushViewController:get animated:NO];
这一切都运行正常。在按下按钮时的奖励中我回弹到testviewcontroller。使用这个`
for (TestViewController*vc in [self.navigationController viewControllers]) {
if ([vc isKindOfClass: [TestViewController class]]){
[[self navigationController] popToViewController:vc animated:YES];
}
}
`
但是当我按下该视图中的后退按钮时,它需要转到我的新推视图控制器,即rewardsget。但是当我打印视图控制器时,它不存在于堆栈中。所以它再次回到第一个按下的viewcontroller,而不是最新的。有人帮我这个吗?
答案 0 :(得分:0)
听起来你的堆栈中有多个TestViewController实例。要获得正确的指针,只需将指向TestViewController的指针传递给GettingViewController,您可能希望拥有一个属性:
@property (nonatomic, assign) TestViewController* testViewController;
当您准备好回到TestViewController电话[self.navigationController popToViewController: self.testViewController animated: YES];
时。
那就是说,听起来你的导航流程可能需要更多思考。在iOS上,中心辐射导航流是最自然的。
答案 1 :(得分:0)
尝试将其更改为UIViewController * vc!