: 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直接贴上用吧 试看看吧