UIView的几个问题
来源:互联网 发布:淘宝店最高等级是什么 编辑:程序博客网 时间:2024/04/30 13:56
总结这2天开发中发现的一些问题:
UIView不能实现为单例
我们的app中有几个页面,有一个共享的组件,似乎很适合用单例模式来实现。但是改成单例以后,发现一个奇怪的现象,从一个ViewController切换回来,那个单例的View组件就不显示了。在stackoverflow上搜索了一番,结论是UIView不应该实现为单例的,apple的文档里也说,这是一种反模式。所以最后改为每个View有一个单独的组件实例,在外部用一个单例的类来保存状态
一般不应该从View获取ViewController的引用
根据apple文档的描述,UIView最好对UIViewController的状态一无所知,如果需要交互的话,一般通过delegate来实现。
所以官方的API,UIViewController可以通过self.view拿到自己的view,而UIView就没有公开类似self.viewController这样的属性
如果一定需要的话,可以使用这个私有的API:
UIViewController *vc = self->_viewDelegate;
当然,由于众所周知的原因,强烈不建议这样做。如果确实需要在view里得到ViewController的话,可以设置一个实例变量,在init方法里赋值
UINavigationItem似乎没有subclassing的价值
今天费了半天劲,自定义一个UINavigationItem的子类,最后发现UIViewController的navigationItem属性是readonly的。。所以貌似UINavigationItem应该直接使用,不应该子类化
0 0
- UIView的几个问题
- UIView-draggable 可拖拽的UIView
- UIView-draggable 可拖拽的UIView
- 答初学者的几个问题
- 关于《仙剑》的几个问题
- mysql碰到的几个问题
- 自己设计的几个问题
- 面试的几个问题
- CVSNT/WINCVS的几个问题
- Nokia S60的几个问题
- nmake的几个问题
- 我不明白的几个问题
- 关于CCheckListBox的几个问题!
- 关于网络的几个问题
- 转载BPEL的几个问题
- 有关浏览器的几个问题
- 准备几个问题的答案
- 安装bugzilla的几个问题
- Quartz任务监控管理
- dom4j的使用
- linux下查看和添加PATH环境变量
- 黑马程序员-面向对象的三大特性1-封装-set,get方法,弱语法
- fd_set 类型用法
- UIView的几个问题
- 从零开始写PHP(二)
- linux和window下线程同步类
- Javascript图片无缝滚动_妙味课堂
- 行程长度压缩算法
- js中使用正则表达式
- [Linux] shell read 命令参数 -p用法
- s:checkboxlist s:checkbox 初始值设置
- 【Java TCP/IP Socket】UDP Socket