【iOS】BaseController的用处
2014-02-25 20:15
453 查看
摘自:http://blog.csdn.net/yanghua_kobe/article/details/9555575
建立iOS项目时候,首先创建一个super class,以供其他viewController去继承。
以实现主题功能为例:BaseController里定义这个方法
其他需要用到主题功能的viewController都继承BaseController,然后重写configUIAppearance方法,如:
这样的好处有:
1、不用每个viewController都注册消息通知,因为共同的父类已经注册了(在BaseController的viewDidLoad里调用registerThemeChangedNotification方法进行注册)。
2、不用在每个sub controller里显示调用configUIAppearance方法,因为在BaseController里会有代码调用。
消息处理的方法:
这里的[self configUIAppearance]的self实例其实是子类的实例,所以会去调用子类重写的方法。
建立iOS项目时候,首先创建一个super class,以供其他viewController去继承。
以实现主题功能为例:BaseController里定义这个方法
- (void)configUIAppearance{ NSLog(@"base config ui "); }
其他需要用到主题功能的viewController都继承BaseController,然后重写configUIAppearance方法,如:
- (void)configUIAppearance{ [self.sendButton setImage:...] }
这样的好处有:
1、不用每个viewController都注册消息通知,因为共同的父类已经注册了(在BaseController的viewDidLoad里调用registerThemeChangedNotification方法进行注册)。
- (void)registerThemeChangedNotification{ [Default_Notification_Center addObserver:self selector:@selector(handleThemeChangedNotification:) name:Notification_For_ThemeChanged object:nil]; }
2、不用在每个sub controller里显示调用configUIAppearance方法,因为在BaseController里会有代码调用。
消息处理的方法:
- (void)handleThemeChangedNotification:(NSNotification*)notification{ UIImage *navBarBackgroundImg=[[[ThemeManager sharedInstance] themedImageWithName:@"themeColor.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0f, 0.0f, 1.0f, 1.0f) resizingMode:UIImageResizingModeTile]; [self.navigationController.navigationBar setBackgroundImage:navBarBackgroundImg forBarMetrics:UIBarMetricsDefault]; [self configUIAppearance]; }
这里的[self configUIAppearance]的self实例其实是子类的实例,所以会去调用子类重写的方法。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 探讨Android与iOS,我们将何去何从?
- IOS 身份证校验详细介绍及示例代码
- iOS NSDate中关于夏令时的坑
- iOS内存错误EXC_BAD_ACCESS的解决方法
- 从 Auto Layout 的布局算法谈性能
- 浅谈 MVC、MVP 和 MVVM 架构模式
- 深入解析 ObjC 中方法的结构
- 你真的了解 load 方法么?
- 从源代码看 ObjC 中消息的发送
- vm安装mac os x 10.7 lion
- objective-c(一)
- objective-c(三)
- objective-c(四)-基本数据类型以及循环和选择结构
- objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用(未完成)