万能跳转控制器路由模式iOS Developer移动开发

任意NSObject及其子类中获取当前显示的控制器

2016-11-14  本文已影响622人  gitKong

一、需求

二、解决办法

三、效果图(跳转效果都是在view中实现)

view中跳转

四、API及用法

/**
 *  @author Clarence
 *
 *  获取当前显示的控制器
 */
- (UIViewController *)fl_viewController;
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    FLSecondViewController *vc = [[FLSecondViewController alloc] init];
    
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
    
    [self.fl_viewController presentViewController:nav animated:YES completion:nil];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    [self.fl_viewController.navigationController pushViewController:[[FLThirdViewController alloc] init] animated:YES];
}

五、总结(看法)

说实话,我很不赞成这种做法,因为这样不面向对象,跳转逻辑等操作应该是在控制器中处理的,因此才有代理的出现,view只负责拿到model数据进行显示,当然还是可以处理部分逻辑的,工具类另谈

gitHub 地址 欢迎大家关注我,有问题就留言,喜欢就给个like😁~我会随时更新新文章

上一篇 下一篇

猜你喜欢

热点阅读