假设我有三个视图控制器,标记为“A”、“B”和“C”。现在,“A”是窗口的rootViewController,并且当单击按钮时,它以模态方式呈现“B”。 在“B”中,当单击按钮时,应该由“A”解除其模态状态,然后“A”立即模态呈现“C”。如何实现这一点?
以下是我的代码,希望实现这个目标,但我没有成功。在“A”视图控制器中,在头文件中声明了一个属性来保存一个块,在“A”视图控制器解除“B”视图控制器的模态状态时调用。
这是"A"视图控制器呈现"B"的方法。
这是“B”的关闭方法,由“A”关闭,“A”应立即呈现“C”。
以下是我的代码,希望实现这个目标,但我没有成功。在“A”视图控制器中,在头文件中声明了一个属性来保存一个块,在“A”视图控制器解除“B”视图控制器的模态状态时调用。
@property (nonatomic, copy) void (^presentZapLaunch)(void);
这是"A"视图控制器呈现"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];
}
这是“B”的关闭方法,由“A”关闭,“A”应立即呈现“C”。
-(void)presentNextViewCon
{
NSLog(@"Hello");
[self.presentingViewController dismissViewControllerAnimated:self completion:^{[(CYCZapZapViewController *)self.presentingViewController presentZapLaunch];}];
}
请注意,我正在使用“ A”视图控制器作为窗口的rootViewController,并且“ A”以模态方式呈现“ B”视图控制器。 所有“A”,“B”和“C”都是视图控制器。