美文网首页
从UIView中pushViewController一个新的vi

从UIView中pushViewController一个新的vi

作者: 行走的风车 | 来源:发表于2017-05-05 13:49 被阅读343次

第一种方法

从uiview中获取到他所在父视图控制器viewcontroller,用父视图控制器执行pushviewcontroller方法

    id object = [self nextResponder];
    while (![object isKindOfClass:[UIViewController class]] && object != nil) {
        object = [object nextResponder];
    }
    UIViewController *superController = (UIViewController*)object;
 
    OperationViewController *OpsViewController = [[OperationViewController alloc]init];
    
    [superController.navigationController pushViewController:OpsViewController animated:YES];

第二种方法

使用block回调

1.在UIView的.h文件中定义一个bock属性:@property (nonatomic, copy)void(^pushVCblock)();
2.在UIView的.m文件的要push操作的方法中执行block:self.pushVCblock()
3.在这个view所在的controller中展开block:

__block typeof(self) weakSelf = self;//block防止循环引用

_searchDefultView.MoreSearchblock = ^{
        OperationViewController *OpsViewController = [[OperationViewController alloc]init];
        [weakSelf.navigationController pushViewController:Mycontroller animated:YES];
    };

相关文章

网友评论

      本文标题:从UIView中pushViewController一个新的vi

      本文链接:https://www.haomeiwen.com/subject/bdajtxtx.html