2009-08-02 13 views
5

Mam aplikację na iPhone'a, która używa kontrolera UITabBarController, który zawiera dwa kontrolery UINavigationController, z których każdy z kolei zawiera jeden lub więcej TableViewControllers (w rzeczywistości, dostosowane UIViewControllers implementujące UITableViewDelegate i UITableViewDataSource). Po uruchomieniu wyświetla UITabBarController z jednym z wyświetlanych widoków tabeli. Wszystko jest zakodowane; Konstruktor interfejsów NIE był używany do tworzenia jakichkolwiek elementów interfejsu użytkownika. Został napisany w SDK 2. Obsłużyło się w sdk 2.Uaktualnienie do iPhone 3.0 sdk i teraz symulator pokazuje pusty ekran

Niedawno zaktualizowałem do SDK 3.0. W Info ustawiam Base SDK na iPhone Simulator 3.0. Teraz, gdy uruchamiam aplikację w Symulatorze, widzę tylko pusty biały ekran z paskiem stanu na górze. Brak śladów mojej aplikacji. Jednak po wyjściu z aplikacji brakujący widok tabeli jest wyświetlany krótko po uruchomieniu odtwarzanej animacji. Ponadto na pustym, białym ekranie mogę nadal klikać, gdzie powinny znajdować się przyciski nawigacyjne, i stwierdzić, że po wyjściu z aplikacji i zniknięciu brakującego ekranu ta nawigacja zaprowadziła mnie na inny ekran. Przyciski działają, i przypuszczalnie komórki widoku tabeli są tam, po prostu nie można ich zobaczyć.

Czy ktoś widział coś takiego? Czy ktoś ma pojęcie, co jest przyczyną tego i jak mogę to naprawić? Zauważyłem, że przykładowe aplikacje, takie jak SQLiteBooks, wydają się działać poprawnie podczas aktualizacji do SDK 3.0. Moja aplikacja nie różni się zbytnio od SQLiteBooków pod względem zastosowanych technologii, z tym wyjątkiem, że, jak wspomniałem powyżej, nie używam programu do generowania interfejsu.

Odpowiedz

1

Jeśli budujesz okno wyłącznie w kodzie, pamiętaj o usunięciu pliku MainWindow.xib z właściwości obiektu docelowego.

Jeśli to nie problem, to miałem podobne problemy z aplikacjami, które zachowywały się dziwnie podczas uruchamiania. Nie jestem pewien, co jest przyczyną, więc jest to dla mnie próba i błąd:

1) Spróbuj usunąć katalog kompilacji i przebudować.

2) Ustaw podstawowy pakiet SDK na iPhone Device 3.0. (Podstawowy pakiet SDK zostanie nadpisany, mimo to, że i tak zbudujesz symulator).

3) Miałem też problem jednorazowy, gdy plik plist projektu i MainWindow.xib został usunięty z mojego projektu przypadkowo, i spowodował ten identyczny problem. Kliknij dwukrotnie, aby upewnić się, że są one w strukturze projektu, jeśli używasz MainWindow.xib.

2

Tak, w końcu znalazłem prostą poprawkę - otwórz okno w MainWindow.xib, zmień wartość Alfa na 0 (domyślnie jest to 100).

+0

To zadziałało dla mnie. Dla tych, którzy nie wiedzą jak to zrobić: 1. Kliknij dwukrotnie Resources/MainWindow.xib, aby otworzyć MainWindow w InterfaceBuilder. 2. Wybierz "okno" w interfejsie MainWindow.xib. 3. Wybierz Narzędzia/Inspektor atrybutów w menu głównym programu Interface Builder. 4. alpha to piąta wartość w dół w atrybutach ui. Zakres wynosi 0,00 - 1,00. Ustaw na 0,00. Zapisz i zamknij IB. –

1

Nie musiałem zmieniać żadnych ustawień wartości alfa. Wszystko, co zrobiłem, to zamknięcie programu Interface Builder przed próbą uruchomienia mojego projektu w iPhone Simulator. Z jakiegoś powodu, jeśli IB jest otwarty przy pierwszym uruchomieniu symulatora, otrzymasz pusty ekran, więc wyjdź z IB przed uruchomieniem projektu po raz pierwszy.

+0

Potwierdziłem to, miałem dokładnie ten sam problem. Kolejne kompilacje i uruchamianie nie wymagają zamknięcia Konstruktora interfejsu. – jbnunn

3

W IB kliknij "Okno" i upewnij się, że "Widoczne przy uruchomieniu" jest zaznaczone. Mój nie był i moja aplikacja w końcu pojawiła się po sprawdzeniu tego pudełka.

0

Mam również ten problem, coud I rozwiązać w następujący sposób:

interfejs producentów: właściciel

  • File: to delegat aplikacja
  • okno: jest wylot okno delegatem aplikacji

W kodzie X: - Jeśli używasz 3.0 lub górny, komentarz ten wiersz kodu w delegata aplikacji:

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

0

Naprawiłem kopalni poprzez zmianę trybu z Scale To Fill do Center. Zanim zmieniłem alfę, wszystko zmieniło się na czarne. Pomyślałem, że być może rzeczywiste wartości nie skalują się poprawnie i miałem rację. Ponownie, po prostu zmień tryb z Scale To Fill na Center i voilà, powinien działać.

0

Wygląda na to, że musisz zapisać nowy interfejs przed uruchomieniem. Nigdy wcześniej nie opracowałem dla iPhone'a iw końcu zorientowałem się, dlaczego dostaję biały ekran. Wygląda na to, że powinien się automatycznie zapisać przed uruchomieniem, ale najwidoczniej tak nie jest.

1

miałem ten sam problem z coraz biały ekran na symulatorze iPhone po uaktualnieniu moje iOS 4.2

Po wypróbowaniu wszystkich powyższych rozwiązań podanych przez ludzi w tym wątku i nic wpływających problemu,

I próbowałem modyfikując następujący kod w metodzie

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

.... pisząc ten kod ...

- (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; 
} 
Powiązane problemy