presentViewController不工作,因为我想
问题描述:
我有我的presentViewController
代码设置是这样的:presentViewController不工作,因为我想
ProductViewController *vc = [[ProductViewController alloc] init];
[self presentViewController:vc animated:YES completion:nil];
它确实提出了vc
控制器,但我无法利用它什么,它就像一个冰冻屏幕。是因为它还有一个观点吗?或者我不应该使用alloc] init
?
ProductViewController
是一个现有的视图控制器(它实际上是根视图控制器),所以基本上我只想让presentViewController
回到根视图控制器。
编辑:
我有一个ShippingViewController
用户在其中输入名称/运输细节。
然后他们点击显示PaymentViewController
(其中有一个导航栏,所有其他视图控制器不)的“结帐”按钮。
在PaymentViewController
上,用户输入他们的信用卡信息并点击“支付”按钮。
如果支付成功,我希望ProductViewController
(初始/根视图控制器)被呈现。目前,如果我只是拨打dismissViewController
,它会显示ShippingViewController
。
答
这似乎对我的问题的护理:
NSString *storyboardName = @"Main";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"id"];
[self presentViewController:vc animated:YES completion:nil];
你有东西挖掘的......?你必须编码解雇视图控制器。 –
使用alloc/init会创建一个'ProductViewController'的新实例,所以上面的代码会将您转发到新实例,而不是回到现有实例。要回去,你应该使用'dismissViewControllerAnimated:completion'而不是'presentViewController:animated:completion:' – pbasdf
@pbasdf有道理,但我不想让它回到那个视图控制器。有没有一种方法可以让它解散,然后转到某个视图控制器而不是前一个? –