Пустой черный экран при запуске приложения для iPad - PullRequest
4 голосов
/ 10 июля 2010

Я столкнулся с каким-то препятствием с моим приложением для iPad.Я, видимо, недавно сделал некоторые невосстановимые изменения в своем коде, и теперь он будет запускаться только с черным экраном.Он отображает изображение загрузки в течение доли секунды и становится черным.

Чтобы упростить задачу, которую я ищу, я хотел бы получить совет о том, с чего мне начать искать?Пока что я приложил все усилия, чтобы проверить и перепроверить все, что только могу придумать, поэтому я готов начать поиск с некоторыми рекомендациями.Более конкретно, каковы некоторые из наиболее распространенных причин того, что ваш код просто приведет к черному экрану, без какого-либо выполнения кода вообще.Это будет проблема InterfaceBuilder, проблема Xcode .h, проблема .m с моими методами или как?Я как-то случайно решил эту проблему несколько раз в прошлом, но сейчас пытаюсь найти источник.Я добавил в свой код вызовы NSLog, чтобы помочь сузить проблему (фактически, в каждом файле .m), и ни один из них вообще не печатается в журнал.

Факты:

  • Я использую последнюю версию Xcode и iOS SDK (для iPad, 3.2).
  • Это происходит как на симуляторе, так и на моем реальном iPad.
  • Мой iPadэто не так, и никогда не было Jailbroken.
  • Мое приложение на самом деле очень простое, это всего лишь одно разделенное представление с подробным представлением и пользовательским корневым представлением, в котором есть измененная таблица.

Любая помощь, которую кто-либо может оказать, действительно спасла бы меня от многих нытьев, хулиганства и плача.хех

Спасибо.

Дополнительный запрашиваемый код:
viewDidLoad из MasterView.m

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"Master: This self: %@", self);

    self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);
    self.arrMenuOptions = [[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"MainMenuOptions" ofType:@"plist"]] retain];
}

viewDidLoad из DetailView.m

- (void)viewDidLoad {
    /// Initialize the preset things.
    NSLog(@"Detail: This self: %@", self);
    eleDetailToolbar.barStyle = UIBarStyleBlack;

    eleWebView.opaque = NO;
    eleWebView.backgroundColor = [UIColor clearColor];
    eleWebView.delegate = self;
    [super viewDidLoad];
}

AppDelegate выдержка

@implementation AssistantAppDelegate

@synthesize window, splitViewController;//, detailViewController, masterViewController;
//rootViewController, eleMasterNavigationItem

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    NSLog(@"AppDelegate: This self: %@", self);

    // Override point for customization after app launch    

    // Add the split view controller's view to the window and display.
    [window addSubview:splitViewController.view];
    [window makeKeyAndVisible];

    return YES;
}

Ответы [ 2 ]

6 голосов
/ 10 июля 2010
  1. Получаете ли вы какие-либо сообщения об ошибках на консоли Run?
  2. Есть ли у вас представление, подключенное в конструкторе интерфейсов?Или пытаетесь загрузить несуществующий файл XIB?
  3. У вас есть ключ main nib file base name, заполненный в файле info.plist?
  4. Что входит в ваши методы applicationDidFinishLaunching и viewDidLoad?
  5. Вы удалили какие-либо ссылки на что-либо в Интерфейсном Разработчике?
  6. Вы недавно добавили какие-либо новые ресурсы, которыеможет быть поврежден?

Пожалуйста, обновите ваш вопрос, если возможно, с кодом

Обновление на основе комментариев: Как вы добавляете окно, если у вас нет applicationDidFinishLaunchingmethod?

У вас должно быть что-то вроде этого в файле App Delegate .m:

@synthesize window;
@synthesize viewController;

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after app launch    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

}

Если этого нет, окно не добавляется, и вы получаете черный экран.

1 голос
/ 21 сентября 2010

У меня была такая же проблема.TechZen был прав, потому что главное окно пера не загружено.Итак, 3-е предложение от iWasRobbed дало лучшую подсказку.

Проблема заключалась в том, что мое приложение было создано как для iPhone, так и для iPad, поэтому в Info.plist у меня было NSMainNibFile~iphone и NSMainNibFile~ipad, которые не распознавались до iSO 3.2.Что мне нужно было сделать, это добавить еще одну запись для целей компиляции: NSMainNibFile.

Спасибо всем за подсказки!Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...