如何在按钮点击中关闭自己的视图控制器并显示另一个视图控制器?

用户名

假设我有3个视图控制器,分别标记为“ A”,“ B”和“ C”。现在,“ A”是窗口的rootViewController,当轻按按钮时,它将以模态形式显示“ B”。在“ B”中,当轻按一个按钮时,它应该被“ A”取消,然后“ A”将立即模态显示C。如何做到这一点?这是我希望实现此目标的代码,但我没有成功。

在“ A” viewController处,我声明了一个属性,该属性可在“ B” viewController被“ 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];

}

这是“ B”解散方法,由“ A”解散,“ A”应立即显示“ C”

-(void)presentNextViewCon
{
NSLog(@"Hello");
[self.presentingViewController dismissViewControllerAnimated:self completion:^{[(CYCZapZapViewController *)self.presentingViewController presentZapLaunch];}];

}

*请注意,我使用“ A”视图控制器作为窗口的rootViewController,“ A”以模态形式显示“ B”视图控制器。所有“ A”,“ B”和“ C”都是视图控制器。

尼丁·戈赫尔(Nitin Gohel)

您可以使用协议让我们说以下例如:

在您的B viewController设置Protocol中:

@class Bviewcontroller;

@protocol BviewControllerDelegate <NSObject>
- (void)BviewcontrollerDidTapButton:
(Bviewcontroller *)controller;

@end

@interface Bviewcontroller : UIViewcontroller

@property (nonatomic, weak) id <BviewControllerDelegate> delegate;
- (IBAction)ButtonTap:(id)sender;

@end

在.m类中

- (IBAction)ButtonTap:(id)sender
{
    [self.delegate BviewcontrollerDidTapButton:self];
}

现在向您介绍A_viewController .h类:

#import "Bviewcontroller.h"

@interface A_viewController : UIViewcontroller<BviewControllerDelegate>

.m类

- (void)BviewcontrollerDidTapButton:
(Bviewcontroller *)controller
{
    [self dismissViewControllerAnimated:YES completion:^{


      // here you can create a code for presetn C viewcontroller 

    }];
}

重要的是,当您从A_viewController预设Bviewcontroller时,请不要使用诸如

-(void)presentNextViewCon
{
                bViewcontroller *gestureViewCon = [[bViewcontroller alloc]init];
        gestureViewCon.delegate = self;

[self presentViewController:gestureViewCon animated:YES completion:nil];

}

更新

这是我创建的演示程序,其工作方式如下:

在此处输入图片说明

样本代码链接 http://speedy.sh/2acSC/modelDemo.zip

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解除视图控制器并显示另一个视图控制器

来自分类Dev

如何关闭当前的视图控制器并在iOS中推送另一个视图控制器

来自分类Dev

如何在另一个视图控制器中检查按钮状态

来自分类Dev

UINavigationController:在iPad上关闭另一个控制器时显示视图控制器

来自分类Dev

UINavigationController:在iPad上关闭另一个控制器时,显示视图控制器

来自分类Dev

如何将数据从一个视图控制器传递到另一个视图控制器,并且在视图控制器之间有一个显示视图控制器

来自分类Dev

如何通过控制器返回另一个控制器的局部视图?

来自分类Dev

如何从另一个视图控制器实例化导航控制器?

来自分类Dev

如何在集合视图控制器上添加另一个滚动视图?

来自分类Dev

如何在集合视图控制器上添加另一个滚动视图?

来自分类Dev

如何从另一个视图控制器访问按钮?

来自分类Dev

用另一个视图控制器快速更改视图控制器

来自分类Dev

从另一个视图控制器通知视图控制器

来自分类Dev

用另一个视图控制器快速更改视图控制器

来自分类Dev

调用另一个视图控制器

来自分类Dev

如何在另一个视图控制器中取消操作队列

来自分类Dev

如何解散模态视图控制器,然后立即让呈现视图控制器呈现另一个模态视图控制器?

来自分类Dev

如何在Swift中将数据从一个视图控制器移动到另一个视图控制器?

来自分类Dev

如何在另一个视图控制器中调用另一个方法?

来自分类Dev

NSMutableAttributedString 中的可点击链接需要显示另一个视图控制器/故事板

来自分类Dev

Swift-关闭另一个标签栏项目上的视图控制器

来自分类Dev

如何为视图控制器创建嵌入到导航控制器中的另一个视图控制器的序列?

来自分类Dev

如何从另一个视图控制器iOS刷新表视图?

来自分类Dev

如何将按钮从一个视图控制器隐藏到另一个

来自分类Dev

如何在ASP.NET MVC 4中将带有自己的控制器的局部视图添加到另一个视图

来自分类Dev

如何使从视图控制器接收的字符串显示在另一个ViewController的表视图中

来自分类Dev

从一个视图控制器从另一个视图控制器加载函数

来自分类常见问题

在另一个视图控制器中将视图控制器添加为子视图

来自分类Dev

推入另一个视图控制器时,根视图控制器的视图消失

Related 相关文章

  1. 1

    解除视图控制器并显示另一个视图控制器

  2. 2

    如何关闭当前的视图控制器并在iOS中推送另一个视图控制器

  3. 3

    如何在另一个视图控制器中检查按钮状态

  4. 4

    UINavigationController:在iPad上关闭另一个控制器时显示视图控制器

  5. 5

    UINavigationController:在iPad上关闭另一个控制器时,显示视图控制器

  6. 6

    如何将数据从一个视图控制器传递到另一个视图控制器,并且在视图控制器之间有一个显示视图控制器

  7. 7

    如何通过控制器返回另一个控制器的局部视图?

  8. 8

    如何从另一个视图控制器实例化导航控制器?

  9. 9

    如何在集合视图控制器上添加另一个滚动视图?

  10. 10

    如何在集合视图控制器上添加另一个滚动视图?

  11. 11

    如何从另一个视图控制器访问按钮?

  12. 12

    用另一个视图控制器快速更改视图控制器

  13. 13

    从另一个视图控制器通知视图控制器

  14. 14

    用另一个视图控制器快速更改视图控制器

  15. 15

    调用另一个视图控制器

  16. 16

    如何在另一个视图控制器中取消操作队列

  17. 17

    如何解散模态视图控制器,然后立即让呈现视图控制器呈现另一个模态视图控制器?

  18. 18

    如何在Swift中将数据从一个视图控制器移动到另一个视图控制器?

  19. 19

    如何在另一个视图控制器中调用另一个方法?

  20. 20

    NSMutableAttributedString 中的可点击链接需要显示另一个视图控制器/故事板

  21. 21

    Swift-关闭另一个标签栏项目上的视图控制器

  22. 22

    如何为视图控制器创建嵌入到导航控制器中的另一个视图控制器的序列?

  23. 23

    如何从另一个视图控制器iOS刷新表视图?

  24. 24

    如何将按钮从一个视图控制器隐藏到另一个

  25. 25

    如何在ASP.NET MVC 4中将带有自己的控制器的局部视图添加到另一个视图

  26. 26

    如何使从视图控制器接收的字符串显示在另一个ViewController的表视图中

  27. 27

    从一个视图控制器从另一个视图控制器加载函数

  28. 28

    在另一个视图控制器中将视图控制器添加为子视图

  29. 29

    推入另一个视图控制器时,根视图控制器的视图消失

热门标签

归档