2013-09-26 32 views
8

Tôi có bộ điều khiển xem tôi đã đặt trong bảng phân cảnh chính nhưng khi tôi cố gắng khởi chạy và tải lên trình điều khiển chế độ xem ứng dụng của tôi gặp sự cố. Các phiên bản xcode tôi đang sử dụng không thực sự cho tôi biết các lỗi tôi nhận được đúng cách, nhưng tôi đã thấy rằng nó đã cho tôi một tín hiệu sigabrt. Tôi không biết tại sao nó không hoạt động.Cố gắng khởi tạo bộ điều khiển xem từ bảng phân cảnh

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SelectDateViewController"]; 
    [vc setModalPresentationStyle:UIModalPresentationFullScreen]; 

    [self presentModalViewController:vc animated:YES]; 

Đây là cách tôi gọi nó. Tất cả các tên tôi đã sử dụng đều đúng nhưng tôi vẫn không hiểu tại sao nó lại bị rơi.

+0

Khi bạn tạo ra các ứng dụng, bạn đã kích hoạt tính năng storyboards để bắt đầu với? – erdekhayser

+0

@foriinrangeawesome Yeah yeah tôi đã làm. –

Trả lời

0

[self presentModalViewController:vc animated:YES]; không còn được dùng nữa.

Hãy thử: [self presentViewController:vc animated:YES completion:nil];

+0

Điều đó rất có thể là lý do. Tôi tự hỏi tại sao nó không cho anh ta một cảnh báo mặc dù. – erdekhayser

6

Đặt một breakpoint ở dòng cuối cùng để xác minh vc (và cũng storyboard) không phải là con số không.

hiện tạiModalViewController sẽ lỗi nếu đối số viewController của nó là không.

Nếu cả hai đều là không, thì tên bảng phân cảnh của bạn có thể không chính xác (ít có khả năng).

Nếu chỉ vc bằng 0 thì số nhận dạng không đúng (bằng mã hoặc bảng phân cảnh). Đảm bảo ID Storyboard của VC (như được khoanh tròn trong ảnh chụp màn hình) khớp với mô tả của bạn. Nó là phong tục không chọn một tên lớp cho điều này (vì bạn có thể có nhiều hơn một thể hiện của một lớp nhất định trong bảng phân cảnh của bạn).

ID bảng phân cảnh có phân biệt chữ hoa chữ thường và phải là duy nhất. Tôi tìm thấy cách lửa chắc chắn để thiết lập nó là gõ tên trong lĩnh vực đó sau khi chọn bộ điều khiển xem và nhấn trở lại để kết thúc chỉnh sửa (không chỉ cần nhấp vào lĩnh vực này). Tôi đã nhận thấy một số tham nhũng xảy ra trong storyboards khi chuyển đổi từ Xcode 4 đến 5 và ngược lại, do đó, lặn vào plist/xml cũng có thể giúp đỡ.

Storyboard ID

Edit: Cũng thời gian khi điều này được gọi là quan trọng, xem presentModalViewController not working. Đảm bảo rằng trình điều khiển chế độ xem nhận được thông báo đã được hiển thị (tức là được gọi trong chế độ xemDidAppear chứ không phải viewDidLoad).

Như đã đề cập bởi Abdullah, bạn có thể phải di chuyển ra khỏi phương pháp NỮA để:

[self presentViewController:vc animated:YES completion:nil]; 

Trong trường hợp này khối hoàn thành có thể bằng không mà không vấn đề, nhưng vc không phải.

0

Bạn đã đặt ViewController ban đầu từ bảng phân cảnh chưa? Nếu có thì hãy đảm bảo rằng Id bảng phân cảnh của bạn giống nhau. Nếu bạn đang sử dụng kịch bản bạn có thể có mặt trực tiếp hoặc bỏ qua những viewController không cần phải viết mã cho nó

hy vọng điều này giúp bạn :)

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