假设我有 3 个视图控制器,分别标记为“A”、“B”和“C”。现在,“A”是窗口的 rootViewController,当点击按钮时,它以模态方式呈现“B”。在“B”中,当一个按钮被点击时,它应该被“A”关闭,然后“A”将立即以模态方式呈现 C。如何做到这一点?这是我希望实现这一目标的代码,但我没有成功。
在“A”视图控制器中,我声明了一个属性来保存头文件中的一个块,以便在“B”视图控制器被“A”解除时调用。
@property (nonatomic, copy) void (^presentZapLaunch)(void);
这是“A” viewController 呈现“B”的方法
-(void)presentNextViewCon
{
CYCGestureZapZapViewController *gestureViewCon = [[CYCGestureZapZapViewController alloc]init];
if (!self.presentZapLaunch) {
__weak CYCZapZapViewController *weakRefCon = self;
self.presentZapLaunch = ^{
CYCZapZapViewController *preventWeakRefCon = weakRefCon;
CYCZapZapLaunchViewController *zapLaunch = [[CYCZapZapLaunchViewController alloc]init];
NSLog(@"Called");
[preventWeakRefCon presentViewController:zapLaunch animated:YES completion:nil];
};
}
[self presentViewController:gestureViewCon animated:YES completion:nil];
}
这是由“A”解雇的“B”解雇方法,“A”应立即呈现“C”
-(void)presentNextViewCon
{
NSLog(@"Hello");
[self.presentingViewController dismissViewControllerAnimated:self completion:^{[(CYCZapZapViewController *)self.presentingViewController presentZapLaunch];}];
}
*请注意,我使用“A”视图控制器作为窗口的 rootViewController,“A”以模态方式呈现“B”视图控制器。所有“A”、“B”和“C”都是视图控制器。