Проблема загрузки View Controller в Core Data Project - PullRequest
1 голос
/ 20 апреля 2011

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

Я обнаружил, что appDelegate загружается, а затем начинает загружать контроллер представления (я могу заставить его регистрировать, что он прошел через метод initWithNibName). Но затем контроллер представления исчезает, и все, что я вижу, - это главное окно. В журнале ошибок нет сгенерированных ошибок.

Вот соответствующий код из приложения Delegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // other code here

    UINavigationController *navigationController = [[[UINavigationController alloc]  init] autorelease];

    HomeViewController *viewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
    viewController.title = @"My Company";
    [navigationController pushViewController:viewController animated:NO];

    [window addSubview:navigationController.view];

    [viewController release];

    [self.window makeKeyAndVisible];
    return YES;
}

В данный момент в контроллере представления есть только данные-заглушки, но я могу опубликовать любой из методов по запросу. Заранее благодарю за помощь.

ОБНОВЛЕНИЕ: Ну, я наконец-то заставил это работать самостоятельно, хотя я не уверен, почему это сработало. Все, что я сделал, это удалил контроллер навигации как свойство делегата приложения и выделил init, автоматически выпустив его в методе didFinishLaunchingWithOptions. После этого все заработало нормально. Код, размещенный выше, это то, что, наконец, сработало. Как ни странно, я попробовал то же самое в другом проекте, над которым я работаю, и он не сработал.

Вот код из второго проекта

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UINavigationController *navigationController = [[[UINavigationController alloc]  init] autorelease];
    StartViewController *viewController = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil];

    [navigationController setNavigationBarHidden:YES];
    [navigationController pushViewController:viewController animated:NO];

    [window addSubview:navigationController.view];
    [viewController release];

    [self.window makeKeyAndVisible];
    return YES;
}

1 Ответ

0 голосов
/ 20 апреля 2011

Попробуйте что-то другое, как это:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  HomeViewController *viewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
  viewController.title = "My Company";
  [navigationController pushViewController:viewController animated:NO];

  [viewController release];

  [window addSubview:navigationController.view];
  [self.window makeKeyAndVisible];
  return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...