我有 2 个视图控制器 A 和 B。
我想从控制器 A 推送到控制器 B,它工作得很好。
现在在控制器 B 中,我有一个“加号”按钮,它把我推到另一个 B 控制器(同一个 ViewController)。现在,当我在 secontr B viewController 中按下后退按钮时,我应该弹出到 A viewController。所以我想知道当我推送另一个视图控制器时如何删除视图控制器?
情况如下所示:
A(推 B)-> B(推 B)-> B(推 B)-> B(弹出 B)-> A
感谢帮助。
我有 2 个视图控制器 A 和 B。
我想从控制器 A 推送到控制器 B,它工作得很好。
现在在控制器 B 中,我有一个“加号”按钮,它把我推到另一个 B 控制器(同一个 ViewController)。现在,当我在 secontr B viewController 中按下后退按钮时,我应该弹出到 A viewController。所以我想知道当我推送另一个视图控制器时如何删除视图控制器?
情况如下所示:
A(推 B)-> B(推 B)-> B(推 B)-> B(弹出 B)-> A
感谢帮助。
试试这个,
id tempViewCont=nil;
for(id viewCont in [self.navigationController viewControllers])
{
if([viewCont isKindOfClass:[A class]])
{
tempViewCont=viewCont;
break;
}
}
if(tempViewCont)
{
[self.navigationController popToViewController:tempViewCont animated:yes];
}
解决方案将popToRootViewController:
在 B3 控制器上完成后调用此方法
所以它将是: A (pushViewController B1) -> B1 (pushViewController B2) -> B2 (pushViewController B3) -> B3 (popToRootViewController:) -> A
这对你有帮助吗?
你试一试
[self.navigationController popToRootViewControllerAnimated:YES];
或者
[self.navigationController popToViewController:A viewcontroller animated:yes];
如果您只推送一次视图控制器 A,您可以尝试以下操作:
NSArray *tempArray = [self.navigationController viewControllers];
for (id viewController in tempArray) {
if ([viewController isKindOfClass:A]) {
[self.navigationController popToViewController:viewController animated:yes];
break;
}
}
希望这可以帮助。
虽然所有其他答案都很好,但在我看来,问题是你是否应该从B它自己的另一个副本推送。对我来说,这是由你是否想从一个跳到B上一个的问题来回答的B。如果是这样,那很好,当您想返回时使用其中一个popToRootViewControllerAnimated或答案。popToViewControllerA
如果没有,你根本不应该从B它自己的另一个副本推送。但是,如果您想向用户展示“让我们再做一次”按钮,您可以做什么,您可以使用transitionWithView. 例如,如果我们假设您有一堆UITextField控件,B并且您有一个“添加另一个”按钮,它可能会执行以下操作:
- (IBAction)onPressAddButton:(id)sender
{
// save the record here
// now, let's animate the resetting of the text fields
[UIView transitionWithView:self.view
duration:0.5
options:UIViewAnimationOptionTransitionCurlUp
animations:^{
self.textField1.text = nil;
self.textField2.text = nil;
self.textField3.text = nil;
}
completion:nil];
}
而且,顺便说一句,如果你这样做,你现在不需要做任何花哨的事情就可以从 B 回到 A。标准导航栏可以满足我们的一切需要。