2009-08-02 9 views
5

Tôi có một ứng dụng iPhone có sử dụng UITabBarController, chứa hai UINavigationControllers, mỗi lần lượt chứa một hoặc nhiều TableViewControllers (thực sự, tùy chỉnh UIViewControllers triển khai UITableViewDelegate và UITableViewDataSource.) Khi khởi động, nó sẽ hiển thị UITabBarController với một trong các tableviews được hiển thị. Mọi thứ đều được mã hóa; Trình tạo giao diện KHÔNG được sử dụng để thực hiện bất kỳ công cụ giao diện người dùng nào. Nó được viết bằng SDK 2. Nó hoạt động tốt trong sdk 2.Nâng cấp lên iPhone 3.0 sdk và bây giờ giả lập cho thấy màn hình trống

Gần đây tôi đã cập nhật lên SDK 3.0. Trong Thông tin, tôi đặt cài đặt SDK cơ sở cho iPhone Simulator 3.0. Bây giờ, khi tôi khởi chạy ứng dụng trong Trình mô phỏng, tôi chỉ thấy một màn hình trắng trống có thanh trạng thái ở trên cùng. Không có dấu hiệu nào của ứng dụng của tôi. Tuy nhiên, khi tôi thoát khỏi ứng dụng, chế độ xem bảng bị thiếu hiển thị nhanh như hoạt ảnh xuất hiện đang phát. Ngoài ra, trên màn hình trắng trống, tôi vẫn có thể nhấp vào vị trí các nút điều hướng và tìm thấy điều đó, khi tôi thoát ứng dụng và màn hình bị thiếu hiển thị nhanh, điều hướng đó đưa tôi đến màn hình khác. Vì vậy, các nút làm việc, và có lẽ là tableviewcells đang có, họ chỉ có thể không được nhìn thấy.

Có ai nhìn thấy bất cứ điều gì như thế này không? Có ai có bất kỳ ý tưởng những gì đang gây ra nó và làm thế nào tôi có thể sửa chữa nó? Tôi nhận thấy rằng các ứng dụng mẫu, chẳng hạn như SQLiteBooks, dường như hoạt động tốt khi cập nhật lên SDK 3.0. Ứng dụng của tôi không khác nhiều so với SQLiteBooks về mặt công nghệ được sử dụng, ngoại trừ điều đó, như tôi đã nói ở trên, tôi không sử dụng Trình tạo giao diện.

Trả lời

1

Nếu bạn đang xây dựng cửa sổ hoàn toàn bằng mã, hãy đảm bảo xóa MainWindow.xib khỏi các thuộc tính trong mục tiêu của bạn.

Nếu đó không phải là vấn đề, tôi đã có các vấn đề tương tự trước đây với các ứng dụng hoạt động lạ khi khởi chạy. Tôi không chắc nguyên nhân gốc rễ là gì, do đó, việc dùng thử và lỗi cho tôi:

1) Thử xóa thư mục xây dựng và xây dựng lại.

2) Đặt SDK cơ sở thành thiết bị iPhone 3.0. (SDK cơ sở sẽ bị ghi đè khi bạn xây dựng cho trình mô phỏng anyway)

3) Tôi cũng gặp sự cố một lần trong đó tệp plist dự án và MainWindow.xib bị xóa khỏi dự án của tôi một cách vô tình và gây ra sự cố giống hệt này. Kiểm tra kỹ để đảm bảo chúng nằm trong cấu trúc dự án của bạn nếu bạn đang sử dụng MainWindow.xib.

2

Có, cuối cùng tôi đã tìm thấy cửa sổ mở cố định đơn giản trong MainWindow.xib, thay đổi giá trị Alpha thành 0 (mặc định là 100).

+0

Điều này làm việc cho tôi. Đối với những người không biết cách thực hiện: 1. Bấm đúp Tài nguyên/MainWindow.xib để mở MainWindow trong InterfaceBuilder. 2. Chọn 'cửa sổ' trong giao diện người dùng MainWindow.xib. 3. Chọn Công cụ/Trình kiểm tra thuộc tính trong trình đơn chính của Trình tạo giao diện. 4. alpha là giá trị thứ năm trong thuộc tính ui. Phạm vi là 0,00 - 1,00. Đặt nó thành 0.00. Lưu và đóng IB. –

1

Tôi không phải thay đổi bất kỳ cài đặt giá trị alpha nào. Tất cả những gì tôi làm là thoát khỏi Trình xây dựng giao diện trước khi cố gắng khởi chạy dự án của tôi trong Trình mô phỏng iPhone. Vì một số lý do nếu IB mở cửa lần đầu tiên bạn chạy trình mô phỏng nó sẽ cung cấp cho bạn một màn hình trống, vì vậy hãy thoát khỏi IB trước khi chạy dự án lần đầu tiên.

+0

Xác nhận điều này, tôi đã có cùng một vấn đề chính xác. Xây dựng và Chạy tiếp theo không yêu cầu bạn phải đóng Trình tạo giao diện. – jbnunn

3

Trong IB, nhấp vào "Cửa sổ" và đảm bảo "Hiển thị khi khởi chạy" được chọn. Của tôi không phải và ứng dụng của tôi cuối cùng đã xuất hiện sau khi kiểm tra hộp đó.

0

Tôi cũng có vấn đề này, tôi coud đã giải quyết làm như sau:

Trong giao diện người xây dựng: chủ sở hữu

  • file: là đại biểu ứng dụng của bạn
  • cửa sổ: là ứng dụng cửa hàng cửa sổ đại biểu

Trong XCode: - Nếu bạn đang sử dụng 3.0 hoặc cao hơn, bình luận dòng mã này trong đại biểu ứng dụng của bạn:

// window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

0

Tôi cố định của tôi bằng cách thay đổi chế độ từ Scale To Fill để Center. Trước khi tôi thay đổi alpha và tất cả nó đã làm thay đổi nền thành màu đen. Tôi nghĩ có lẽ các giá trị thực tế không được chia tỷ lệ chính xác, và tôi đã đúng. Một lần nữa, chỉ cần thay đổi chế độ từ Scale To Fill thành Center và không hoạt động, nó sẽ hoạt động.

0

Dường như bạn phải lưu giao diện mới trước khi chạy. Tôi chưa bao giờ phát triển cho IPhone trước và cuối cùng đã tìm ra lý do tại sao tôi đã nhận được một màn hình trắng. Có vẻ như nó sẽ tự động lưu trước khi chạy nhưng dường như nó không.

1

tôi đã cùng một vấn đề nhận được màn hình màu trắng trên iphone giả sau khi nâng cấp iOS của tôi để 4.2

Sau khi thử tất cả các giải pháp trên được đưa ra bởi người trong chủ đề này và không có gì thực sự vấn đề,

tôi cố gắng sửa đổi đoạn mã sau vào phương pháp

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

.... bằng cách viết mã này ...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 



    // HomeScreen is my first view that should be displayed on the app launch 
    // Creating the homescreen instance in the appdelegate method and 
    // assigned it to the homeScreenWindow element declared in the appdelegate class 

    HomeScreen *aHomeScreen = [[HomeScreen alloc]initWithNibName:@"HomeScreen" bundle:nil]; 
    self.homeScreenWindow = aHomeScreen; 
    [aHomeScreen release]; 
    // assigning ends here 

    [window addSubview:[homeScreenWindow view]]; 
    [window makeKeyAndVisible]; 

    return YES; 
}