Белый экран после представления контроллера модального вида - PullRequest
0 голосов
/ 02 апреля 2012

Я получаю белый экран после представления модального контроллера представления.Вот как я это делаю:

SomeViewController *controller = [[[SomeViewController alloc] initWithManagedObjectContext:managedObjectContext] autorelease];
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:controller] autorelease];
[navController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:navController animated:YES];

Панель навигации работает нормально, так как я настроил ее в SomeViewController, но содержимое представления не видно, и все, что я вижу, это белый фоновый цвет корняwindow.

Странно то, что раньше это работало, но теперь по какой-то причине это не так.В чем может быть проблема?

РЕДАКТИРОВАТЬ:

Вот как я создаю SomeViewController:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self setTitle:@"Some View"];

    UIBarButtonItem *sortButton = [[[UIBarButtonItem alloc] initWithTitle:@"Sort" style:UIBarButtonItemStylePlain target:self action:@selector(sortButtonClicked:)] autorelease];
    [[self navigationItem] setRightBarButtonItems:[NSArray arrayWithObjects:sortButton, [self editButtonItem], nil] animated:YES];

    UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(dismissModalViewControllerAnimated:)] autorelease];
    [[self navigationItem] setLeftBarButtonItem:backButton];

    // Hack to force landscape orientation
    UIViewController *controller = [[UIViewController alloc] init];
    [self presentModalViewController:controller animated:NO];
    [self dismissModalViewControllerAnimated:NO];
    [controller release];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
}

- (void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

Ответы [ 3 ]

1 голос
/ 03 апреля 2012

Белый экран был вызван тем, что xib file контроллера не является частью target (флажок целевого членства снят).

0 голосов
/ 02 апреля 2012

Есть ли у вас какой-то другой инициализированный объект в классе SomeViewController? Пожалуйста, опубликуйте весь файл .m. Если это так, вы можете попробовать удалить метод initWithNibName и проверить, показывает ли он содержимое.

EDIT: Другим странным моментом является метод initWithManagedObjectContext, который вы используете в экземпляре viewController. Вы можете это объяснить?

0 голосов
/ 02 апреля 2012

попробуй

SomeViewController *controller = [[[SomeViewController alloc] init] autorelease];

все должно работать нормально.

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