开发笔记之-xib和UIStoryboard继承

2022-01-20  本文已影响0人  Tiger_iOS开发

场景:开发的时候想用同样的xib或者UIStoryboard来实现不一样的业务逻辑,又不想改动原来的代码,平常我们想的是重新复制一份,来修改实现,但是这样会有重复文件和代码的出现,如果要是使用继承的话就完美了,那么xib和storyboard要怎继承呢?

实现:多的不说,少的不唠,直接上代码:

xib继承

 SubViewController : ViewController//子控制器继承父类,子控制器实现不同的业务逻辑

SubViewController *vc = [[SubViewController alloc] initWithNibName:@"ViewController" bundle:nil];//子控制器加载父类的xib,子控制器就不用另外创建xib了

[self.navigationController pushViewController:vc animated:YES];

UIStoryboard继承(同理)

 SubViewController : ViewController//子控制器继承父类,子控制器实现不同的业务逻辑

ViewController*vc = [[UIStoryboard storyboardWithName:@"ViewController" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController"];//拿到父类的storyboard

object_setClass(vc,[SubViewController class]);//重点来了考试要考:(跳转到自己要实现需求的子类,加载父类的storyboard,此处运用运行时,把父类交换成子类对象,然后跳转)

[self.navigationController pushViewController:vc animated:YES];

上一篇下一篇

猜你喜欢

热点阅读