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