2013-12-17 13 views
5

Apple Doc nói Một trong những đối tượng quan trọng nhất trong tệp nib là đối tượng Chủ sở hữu tệp, nhưng có vẻ như đó là chủ sở hữu tệp trong tệp nib, không phải là tệp được đặt theo phương thức LoadNibName. Tôi tự hỏi sự khác biệt giữa chúng là gì?Ý nghĩa của chủ sở hữu khi sử dụng loadNibNamed là gì?

Dưới đây là một ví dụ:

tôi tùy chỉnh một alertView từ xib và cung cấp một phương pháp lớp tĩnh như thế này:

+(CustomAlert *)sharedAlert{ 
    CustomAlert *alert = [[[NSBundle mainBundle] loadNibNamed:@"CustomAlert" owner:nil options:nil]lastObject]; 
    return alert; 
} 

và tôi có một phương pháp để hiển thị cảnh báo trên xem

- (void)showInView:(UIView *)view{ 
    [view addSubview:self]; 
} 

và trong chế độ xem của tôiController:

- (IBAction)buttonPressed:(id)sender{ 
    CustomAlert *alert = [CustomAlert sharedAlert]; 
    [alert showInView:self.view]; 
} 

nó hoạt động tốt trong tình huống của tôi, vì vậy nó là cần thiết để thiết lập các chủ sở hữu trong [[[NSBundle mainBundle] loadNibNamed: owner: options:?

Trả lời

2

Giả sử bạn có tệp nib với một chế độ xem bảng và bảng tổng quan và nguồn dữ liệu được nối với "chủ sở hữu tệp" trong trình tạo giao diện. Nếu bạn đặt chủ sở hữu tệp cho bất kỳ đối tượng nào, thì đối tượng đó sẽ là nguồn dữ liệu và ủy quyền của tableview. Điều này là hợp lệ cho bất cứ điều gì nối với chủ sở hữu tập tin.

+0

Tôi biết chủ sở hữu tệp quan trọng trong tệp nib, nhưng tôi tự hỏi ý nghĩa của nó trong '[[[NSBundle mainBundle] loadNibNamed: owner: options:', và tại sao nó hoạt động trong tình huống của tôi. – johnMa

+1

nó là cùng một ý nghĩa, là CustomAlert của bạn một lớp con của UIAlertView hoặc UIButton? Nếu đó là một cảnh báo, làm thế nào để bạn thiết lập các đại biểu? Nếu đó là UIButton, bạn làm cách nào để thêm mục tiêu? Trong cả hai trường hợp nếu bạn đang thực hiện nó theo chương trình, bạn không cần chủ sở hữu của tệp. –

+0

vì vậy những gì bạn có nghĩa là chủ sở hữu của CustomAlert File là lớp CustomAlert vì tôi thêm mục tiêu vào lớp CustomAlert? – johnMa

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