Tôi đang thử nghiệm cách tải các tệp nib lên UIViewController
.Đang tải một tệp nib bên trong UIViewController
Tôi đã tạo một tệp nib riêng biệt được gọi là Email. Đầu tiên tôi nhận thấy rằng khi bộ điều khiển xem được tải, phương thức initWithNibName
không được gọi. Vì vậy, tôi gọi nó theo phương pháp viewDidLoad
theo cách thủ công như thế này,
[self initWithNibName:@"Email" bundle:[NSBundle mainBundle]];
Nó không hoạt động. Ngoài ra tôi nhận được cảnh báo nói rằng Kết quả biểu hiện không được sử dụng.
Và tôi đã tìm kiếm trên internet và đã xem qua bài viết this và thực hiện các phương pháp loadView
như mô tả như vậy,
- (void)loadView
{
[super loadView];
UINib *nib = [UINib nibWithNibName:@"Email" bundle:nil];
[nib instantiateWithOwner:self options:nil];
}
Phương pháp này được gọi nhưng vẫn điều khiển xem là trống rỗng!
Ai có thể cho tôi biết những gì tôi nhìn thấy ở đây và cách thực hiện điều này?
Cảm ơn bạn.
UPDATE:
Trước hết, cảm ơn vì tất cả các câu trả lời. Tuy nhiên voromax và svena 's câu trả lời cho thấy rằng tôi nên loại bỏ segues và tải nibs tự động mà tôi không phải là rất thích. Câu trả lời của Anil hoạt động tìm thấy và bây giờ tôi có một trở ngại cuối cùng để nhảy.
Tôi có nhiều tệp nib. Tùy thuộc vào lựa chọn của người dùng, nó sẽ tải một nib cụ thể. Vì vậy, những gì tôi đã cố gắng là, đặt tất cả các ngòi bên trong các mảng như vậy,
- (void)loadView
{
[super loadView];
NSArray *nibs = [[NSArray alloc] initWithObjects:
[[NSBundle mainBundle] loadNibNamed:@"Facsimile" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"Email" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"Memorandum" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"ProjectMemo" owner:self options:nil], nil];
self.view = [nibs objectAtIndex:0];
}
và truy cập nó bằng cách sử chỉ số của nó như self.view = [nibs objectAtIndex:1];
này. Nhưng nó ném một lỗi * Chấm dứt ứng dụng do ngoại lệ uncaught 'NSInvalidArgumentException', lý do: '- [__ NSArrayM _setViewDelegate:]: unrecognized selector gửi đến dụ 0xd56fd20' *
Tại sao lỗi này xuất hiện? Nếu nó không thể, tôi mở để gợi ý.
Xin cảm ơn một lần nữa. Và xin lỗi vì đã kéo nó ra một chút.
Bạn vẫn không đề cập đến cốt truyện và logic tùy chỉnh trong câu hỏi của bạn, không phải ai cũng sẽ đọc tất cả các ý kiến ... Xem câu trả lời được cập nhật – voromax