2012-02-09 24 views
16

Tôi nhận thấy "- (id) init" trong ViewController không được thực hiện khi sử dụng bảng phân cảnh. là có bất kỳ phương pháp khác có thể thay thế init, hoặc là có để lực lượng bắn init."- (id) init" không kích hoạt trong ViewController khi sử dụng bảng phân cảnh

+2

Bạn đang cố gắng làm gì? Có một số phương thức khác: '-initWithNibName: bundle:', '-viewDidLoad',' -viewDidAppear: ', vv Tùy thuộc vào những gì bạn muốn làm, một trong số đó có thể là một lựa chọn tốt hơn. – user1118321

Trả lời

37

cố gắng sử dụng

- (id)initWithCoder:(NSCoder*)aDecoder 
{ 
    if(self = [super initWithCoder:aDecoder]) 
{ 
     // Do something 
    } 
    return self; 
} 
+1

Tôi có ấn tượng rằng lý do initWithNibName không được gọi là vì bạn không sử dụng tệp nib với bảng phân cảnh. Cảm ơn bạn @NeverBe, initWithCoder cũng chạy cho tôi. – Ant

+0

+1 cho @Ant - mã trong câu trả lời là giải pháp đúng, nhưng bỏ lỡ giải thích - sau đó đã được xóa. –

3

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle được gọi để thay thế.

Như nhận xét ở trên cho biết, bạn cần phải quyết định xem có thể có phương pháp thích hợp hơn để ghi đè hay không. Xin lưu ý rằng chế độ xem chưa được tải trong phương thức initWithNibName, do đó, đừng cố thay đổi bất kỳ điều gì ở đó.

Các vấn đề liên quan