在子视图中实现调用控制器里面的跳转方法这里介绍三种方法

方法一: 在这个自定义的UIVIew设置一个delegate,指向 A,然后在按钮事件使用delegate让A执行方法跳转B
在这个自定义的UIVIew—>B
B所载的界面—>A
在A里面定义一个算法如下:
-(void)changeInterface:(NSString *)interfacename
{
    Class class = NSClassFromString(interfacename);
    UIViewController *con =[[class alloc] init];
    if (con == self)
    {
        return ;
    }
    
    [self.navigationController pushViewController:con animated:YES];
}
在点击事件发生的同时传递一个指针过去,例如:
pop . delegate  =  self ;
在B视图中实现跳转
 [ _delegate   changeInterface : @"ClassifyViewController" ];

方法二:
也可以发通知给UIViewController A去跳转到B
、、、、这个方法是最不好的也是最初级的
方法三: 或者直接通过UIResponder获取view所在的controller中方法如下:
UIView* next = [self superview]  
UIResponder *nextResponder = [next nextResponder];  
if ([nextResponder isKindOfClass:[UIViewController class]])
{  
     return (UIViewController *)nextResponder;  
 }  
拿到controller就可以操作咯! 


- (id) traverseResponderChainForUIViewController {
    id nextResponder = [self nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
        return nextResponder;
    } else if ([nextResponder isKindOfClass:[UIView class]]) {
        return [nextResponder traverseResponderChainForUIViewController];
    } else {
        return nil;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值