Re: [问题] 如何在元件内使用 nib & class

楼主: yuanruo (罪を憎んで人を憎まず)   2014-04-04 20:28:44
: 1.我要可以在 IB 里直接打入 class name
: 2.然后要可以和 nib 档配合
:
: 为了元件的重复使用,比如我有两个 controller ,都用 xib 档绘制 UI
: ControllerA.xib, ControllerB.xib
: 而元件是 MyObj.xib, MyObj.m, Myobj.h (继承自 UIView)
:
: MyObj.xib 内可以直接打 MyObj 这个 class name
: 整个元件的 UI 绘制及动作细节,可以全封在 MyObj.* 这三个档内
: 为了重复使用,所以 MyObj 的内部元件,是不会拉任何 reference
: 到 ControllerA & ControllerB 去的
:
: 好,现在我要怎么把 MyObj 这个元件,摆入 ControllerA.xib 内呢?
: 我和同事是只会迂回的方法啦,而且又被说是错误的
:
: ※ 编辑: HuangJC (175.180.82.140), 04/04/2014 19:22:37
: → Blueshiva:所以你到底去看 initWithCode 是为了什么被呼叫了没? 04/04 20:09
在 Myobj.m 中 实现 NSObject方法
- (id) awakeAfterUsingCoder:(NSCoder *)aDecoder
{
BOOL isTheViewGotLoaded = ([[self subViews] count] == 0);
if (isTheViewGotLoaded) {
MyObj *myObj = [[[NSBundle mainBundle] loadNibName:@"Myobj" owner:nil
option:nil]lastObject];
myObj.frame = self.frame;
return myObj;
}
return self;
}
ControllerA. xib 拉一个UIView 然后 custom class 打上MyObj
其他就xib直接贴上用吧 试看看吧
作者: HuangJC (吹笛牧童)   2014-04-07 00:48:00
手上没电脑,不过如果这个会动,的确就是我要的而且不迂回谢谢试验成功了!! 感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com