我做這樣的:
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:nil options:nil];
self = [nibViews objectAtIndex: 0]; //here it would be best practice to loop through nibViews and get the first view that is member of your class.
此外,在筆尖文件的視圖,設置爲MyCustomView
,而不是UIView
。 這兩行後,您可以設置任何你想要的值。但是,請注意,如果您爲超級設置幀,則它將被xib文件中的值覆蓋。因此,在裝入筆尖之後更好地設置所有內容,而不是之前。
據我所知,UIView
加載沒有回調,因爲viewDidLoad
是UIViewController
。
希望這會有所幫助。
乾杯!
編輯:
你可以做這樣的事情:
- (id)initWithInfo:(MyInfoClass *) selectedInfo Body:(NSString *) _body
{
if ((self = [super init]))
{
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyCustomClass" owner:nil options:nil];
self = [nibViews objectAtIndex: 0];
[self setInfo:selectedInfo];
[self setBody:_body];
}
}
,然後只用該方法initWithInfo: Body:
。
- (void)viewDidLoad; – Majster
否:-)我正在使用UIView而不是UIViewController。在UIView的類中沒有viewDidLoad,viewWillAppear等。 – Thomas
@Thomas'的initWithCoder:'或'initWithFrame:方法'**應該工作正常**如果沒有你肯定搞砸了的東西 - 我建議你測試它創建一個空白的項目。您也可以*以編程方式創建所有這些*並完全避免使用Interface Builder。 – 2012-10-31 08:15:21