2012-01-07 36 views

Trả lời

127

Các initializer sử dụng là initWithCoder:

- (id)initWithCoder:(NSCoder *)decoder 

Sau đó, sau đó bạn cũng sẽ nhận được một thông awakeFromNib.

+3

Tôi là người duy nhất tìm thấy nó lạ rằng mặc định (?) Init không được gọi là từ initWithCoder? – brianestey

+2

Không, nó không phải là init được chỉ định, inits nên gọi một init khác (thông thường) nhiều tham số hơn, mà sau đó sẽ gọi [super init]. Trong trường hợp này có vẻ như initWithCoder là init được chỉ định – MrJD

+7

initWithCoder: là một trình khởi tạo được chỉ định của bất kỳ lớp nào thực hiện NSCoding. –

5

Tôi tin rằng nó là awakeFromNib

+0

awakeFromNib được gọi quá kể từ 'UIViewControllers' của chúng tôi đang được "đóng hộp" trong tệp .storyboard của bạn (tương đương với "ngòi" cũ) – Besi

+0

Sự khác biệt (có thể quan trọng) giữa phương thức 'awakeFromNib' và' init * 'là chúng trả về một cá thể,' awakeFromNib' không. – Matthew

0

Đây là - (id)initWithCoder:(NSCoder *)decoder

Vì vậy, nếu bạn phải làm một init tùy chỉnh, chúng ta hãy nói bằng cách sử dụng tùy chỉnh Pager điều khiển bạn phải làm ở đó như

- (id)initWithCoder:(NSCoder *)decoder { 

     self = [super initWithCoder:decoder]; 
     return [self initWithViewControllers:@[self.playerViewController, self.categoriesViewController] 
        andTitles:@[@"Player",@"Categories"]]; 
    } 
Các vấn đề liên quan