2011-12-17 29 views
6

Tôi có một ứng dụng iOS mà tôi đã tạo bằng mẫu "Ứng dụng dựa trên cửa sổ" của Xcode 4.0. Nó hoạt động tốt trở lại sau đó và nó đã được sử dụng SDK iOS 4.3. Đây là một ứng dụng chỉ đơn giản là đặt các nút, nhãn, vv trực tiếp vào một cửa sổ. Không có bộ điều khiển chế độ xem — không có gì.Tại sao iOS 5.0 không giống như các ứng dụng cửa sổ đơn giản? Tại sao nó yêu cầu bộ điều khiển xem được sử dụng?

Nhưng bây giờ mà tôi đã nâng cấp lên Xcode 4.2 (và iOS của nó 5.0 SDK), và tôi chạy ứng dụng, thông báo này được đăng nhập vào giao diện điều khiển khi ứng dụng khởi động trong mô phỏng:

“Ứng dụng dự kiến ​​sẽ có bộ điều khiển chế độ xem gốc vào cuối lần khởi chạy ứng dụng ”

Để chắc chắn, ứng dụng tiếp tục hoạt động nhưng nhật ký khó chịu này được in ra trên mỗi lần khởi chạy.

Tại sao điều này lại xảy ra? Tại sao iOS 5.0 lại thích/yêu cầu bộ điều khiển chế độ xem?

+0

Tôi có thể hỏi tại sao bạn không muốn sử dụng bộ điều khiển chế độ xem không? Chúng rất tiện dụng và phổ biến trên nhiều mã iOS mà bạn sẽ chạy vào. – zot

+0

Tôi không có bất cứ điều gì chống lại họ và tôi sẽ sử dụng chúng nếu iOS muốn tôi. Tôi chỉ tò mò về hành vi trên. – Enchilada

Trả lời

7

Tôi không biết cụ thể lý do tại sao các thông điệp được đăng, nhưng tích hợp giữa UIWindow và UIViewController đã tăng trong vài lần lặp cuối cùng của iOS. iOS 4 đã thêm thuộc tính rootViewController vào UIWindow. Hai lớp này hoạt động cùng nhau để quản lý xoay vòng. Với những khả năng mới mà iOS 5 đã giới thiệu cho UIViewController (cụ thể là khả năng tạo bộ điều khiển xem bộ chứa của riêng bạn), rõ ràng mối quan hệ giữa hai lớp sẽ tiếp tục phát triển. Như bạn đã nói, ứng dụng của bạn tiếp tục hoạt động trong iOS 5, do đó, việc có bộ điều khiển chế độ xem gốc không phải là một yêu cầu khó và nhanh. Có lẽ có những tính năng được lên kế hoạch cho các phiên bản iOS trong tương lai sẽ phụ thuộc vào việc có sẵn bộ điều khiển xem.

Tôi không có bất cứ điều gì chống lại chúng và tôi sẽ sử dụng chúng nếu iOS muốn tôi. Tôi chỉ tò mò về hành vi trên.

Tôi sẽ giải thích thông điệp được ghi nhật ký như một cú huých nhẹ nhàng nhưng dai dẳng từ Apple hướng tới việc cung cấp bộ điều khiển chế độ xem gốc. Hầu hết các ứng dụng đã sử dụng bộ điều khiển xem anyway, vì vậy đây không phải là một thay đổi lớn, nhưng có thể có một số ứng dụng không thể đặt thuộc tính rootViewController của cửa sổ thành bộ điều khiển chế độ xem cấp cao nhất của cửa sổ.

+5

+1 Bằng cách muốn cửa sổ có bộ điều khiển chế độ xem gốc, mã cơ bản có thể đưa ra một số giả định giúp các kỹ sư UIKit dễ dàng hơn. –

1

Bạn vừa Connected "xem" của bạn với "File Chủ đầu tư" ..... chỉ cần loại bỏ kết nối đó và chạy app.click của bạn xem bạn và xem khu vực kết nối thanh tra và loại bỏ mối quan hệ đó mà tôi told..I không biết chính xác những gì lý do .. nhưng tôi đã có vấn đề này và tôi xóa. Có thể bạn đã sử dụng một số chế độ xem bảng hoặc một số chế độ xem khác trong đó.So ứng dụng. cần một bộ điều khiển nhằm launch.If bạn loại bỏ kết nối mà sau đó nó sẽ chạy những gì bạn đã viết trong chỉ có một mã ...

+0

@Enchilada Bạn vừa xem lại câu trả lời của tôi để xóa lỗi của bạn "Ứng dụng được dự kiến ​​sẽ có bộ điều khiển chế độ xem gốc vào cuối lần khởi chạy ứng dụng" ... ????? –

1

Hãy để tôi nói cho bạn biết lý do.

Trong phiên bản cũ, ứng dụng Window-based được sử dụng để xây dựng multi-view applications.But trong Xcode 4.2, các ứng dụng Window-based không tồn tại nữa. Ứng dụng trống được thiết kế để thiết lập chương trình xem nhiều lần.

Sự khác biệt giữa ứng dụng Window-based và ứng dụng rỗng là trước đây có một cửa sổ chính, MainWindow.xib.

Khi chương trình bắt đầu, iPhone xây dựng cửa sổ chính đầu tiên. Nội dung trong MainWindow sẽ được tải và xây dựng. Nhưng nếu bạn muốn có thêm hàm, ví dụ: nhiều chế độ xem, bạn vẫn phải có bộ điều khiển chế độ xem gốc mới. Bộ điều khiển chế độ xem gốc có thể giúp quản lý các chế độ xem trong chương trình của bạn. Trong phiên bản mới, Xcode 4.2, bộ điều khiển chế độ xem gốc được mong đợi.

Trong ấn bản mới, không có MainWindow.xib trong ứng dụng trống. AppDelegate tạo cửa sổ thay thế. Và nó muốn có một bộ điều khiển xem gốc. Vì vậy, cách tốt nhất là tạo một lớp con UIViewController với XIB cho giao diện cho MainWindow. Nhưng trong phiên bản cũ, XIB là không cần thiết.

Vì vậy, hãy tải xuống? Nếu không có một bộ điều khiển xem gốc, bạn sẽ không nhận được một lỗi, nhưng bạn khó có thể làm bất cứ điều gì mà không có một. Đó là lý do tại sao cảnh báo luôn xuất hiện.

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