2012-07-17 14 views
9

Tôi đã bị kẹt với cảnh báo này trong vài giờ ngay bây giờ. Tôi đã nhìn xung quanh SO cho câu trả lời, cố gắng tất cả những cái tôi tìm thấy và không thể tìm thấy giải pháp. Dưới đây là phần chạy xuống của mã tôi có, Xcode được tạo theo mặc định.Cửa sổ ứng dụng dự kiến ​​sẽ có bộ điều khiển chế độ xem gốc vào cuối cảnh báo khởi chạy ứng dụng

Đây là trong appdelegate tôi

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

Tôi có điều này trên main.m (theo this answer)

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
     return retVal; 
    } 
} 

Tôi cũng có tất cả các kết nối trong MainWindow.xib của tôi kết nối một cách chính xác. Vì vậy, tôi đang thua lỗ ngay bây giờ. Bất cứ điều gì mà tôi có thể bị mất tích? Cảm ơn trước!

+1

Câu trả lời được đánh dấu là chấp nhận cho câu hỏi được liên kết của bạn sẽ là câu hỏi giải quyết vấn đề cho tác giả của câu hỏi. Có 36 câu trả lời khác được liệt kê ở đó, mô tả một danh sách giặt ủi các khả năng khác. – dasblinkenlight

+0

@ dasblinkenlight Đó là một bình luận lạ. –

+0

@robmayoff Tôi đã thử phát âm lại nó ít lạ. Câu hỏi mà OP liên kết có nhiều câu trả lời, mỗi câu hỏi mô tả một vấn đề khác dẫn đến cùng cảnh báo đó và cách khắc phục. OP đề cập đến việc sửa chữa vấn đề như được mô tả trong câu trả lời được chấp nhận, nhưng nó không có vẻ như anh đã thử 36 đề xuất khác. – dasblinkenlight

Trả lời

19

Thật lạ khi đặt cửa sổ rootViewController của cửa sổ ở application:didFinishLaunchingWithOptions: nếu bạn có MainWindow.xib. Thông thường, một dự án theo một trong ba mẫu sau:

  • Một số dự án có MainWindow.xib. "Giao diện chính" của mục tiêu được đặt thành "MainWindow" trong tab Tóm tắt của mục tiêu (hoặc trong Info.plist) của mục tiêu. Chủ sở hữu tập tin của xib này là UIApplication. Xib chứa một thể hiện của AppDelegate, được kết nối với ổ cắm delegate của Chủ sở hữu tệp. Các xib cũng chứa một UIWindow, có rootViewController ổ cắm được kết nối với một UIViewController (hoặc phân lớp, chẳng hạn như UINavigationController), cũng là trong xib. Vào thời điểm đại biểu ứng dụng nhận được thông báo application:didFinishLaunchingWithOptions:, xib được tải hoàn toàn, do đó cửa sổ và trình điều khiển chế độ xem gốc của nó đã được thiết lập.

  • Các dự án khác không có MainWindow.xib. "Giao diện chính" của mục tiêu trống. Thay vào đó, hàm UIApplicationMain tạo một thể hiện của AppDelegate, đặt nó làm đại biểu của UIApplication và gửi thông báo application:didFinishLaunchingWithOptions:. Người đại diện ứng dụng xử lý thông báo đó bằng cách tạo UIWindow, tạo bộ điều khiển chế độ xem (hoặc một số) và đặt thuộc tính rootViewController của cửa sổ. Phiên bản mặc định trông giống như sau:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
        // Override point for customization after application launch. 
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
        self.window.rootViewController = self.viewController; 
        [self.window makeKeyAndVisible]; 
        return YES; 
    } 
    
  • Một số dự án có MainStoryboard.storyboard. Tôi sẽ không mô tả chi tiết điều này vì nó dường như không liên quan đến vấn đề của bạn.

Vấn đề bạn mô tả có vẻ như bạn đang sử dụng một nửa mẫu đầu tiên và một nửa mẫu thứ hai. Điều đó sẽ không hoạt động. Bạn cần phải quyết định phương pháp nào bạn đang thực hiện và đi vào tất cả.

2

Bạn có thể mở tệp xib và nhấp chuột phải vào "Chủ sở hữu tệp" trong Trình giữ chỗ. Nếu chế độ xem không kết nối với cửa sổ Xem thì hãy giữ phím "Ctrl" và kéo chuột phải để thiết kế, sau đó chạy lại^^ (không kéo điều khiển cụ thể, kéo đến thiết kế nền khi xuất hiện dạng xem đường viền).

0

Tôi có giải quyết vấn đề trong dự án của tôi, Thực hiện theo các bước dưới đây để giải quyết nó ..

1) Mở tập tin nib xem điều khiển chính, tập tin mà bạn có tài liệu tham khảo trong appDelegate eg.ViewCotroller.xib

2) Trên tệp nib kiểm tra kết nối xem, nếu không kết nối với chủ sở hữu tệp thì hãy kết nối.

3) Bây giờ hãy chạy dự án.

1

Tôi có thông báo này vì tôi đã có trong RootViewController @property (yếu, nonatomic) IBOutlet UIView * loadView; và viewDidLoad được gọi hai lần ... Đổi tên thành thứ khác ...