首页 > 代码库 > 在子视图中实现调用控制器里面的跳转方法这里介绍三种方法
在子视图中实现调用控制器里面的跳转方法这里介绍三种方法
方法一:在这个自定义的UIVIew设置一个delegate,指向 A,然后在按钮事件使用delegate让A执行方法跳转B
在这个自定义的UIVIew—>B
B所载的界面—>A
在A里面定义一个算法如下:
方法二:也可以发通知给UIViewController A去跳转到B
-(void)changeInterface:(NSString *)interfacename
{
Class class = NSClassFromString(interfacename);
UIViewController *con =[[class alloc] init];
if (con == self)
{
return ;
}
[self.navigationController pushViewController:con animated:YES];
}
{
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;
}
}
在子视图中实现调用控制器里面的跳转方法这里介绍三种方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。