iPad SplitController возвращает ноль - PullRequest
0 голосов
/ 16 июля 2011

У меня есть этот код,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger row = indexPath.row;
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIViewController <SubstitutableDetailViewController> *detailViewController = nil;
    if (row == 0) {
        FirstDetailViewController *newDetailViewController = [[FirstDetailViewController alloc] initWithNibName:@"FirstDetailView" bundle:nil];
        detailViewController = newDetailViewController;
    }

    if (row == 1) {
        SecondDetailViewController *newDetailViewController = [[SecondDetailViewController alloc] initWithNibName:@"SecondDetailView" bundle:nil];
        detailViewController = newDetailViewController;
    }

    if (row == 2) {
        view31 *newDetailViewController = [[view31 alloc] initWithNibName:@"view31" bundle:nil];
        detailViewController = newDetailViewController;

        NSLog(@"%@", detailViewController);
    }

    // Update the split view controller's view controllers array.

    NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController , detailViewController, nil];

    // NSArray *newVCs = [NSArray arrayWithObjects:[self.splitViewController.viewControllers objectAtIndex:0], viewControllers, nil];

    NSLog(@"%@", viewControllers);

    self.splitViewController.viewControllers = viewControllers;
    NSLog(@"%@", self.splitViewController.viewControllers);

    [viewControllers release];

    // Dismiss the popover if it's present.
    if (popoverController != nil) {
        [popoverController dismissPopoverAnimated:YES];
    }

    // Configure the new view controller's popover button (after the view has been displayed and its toolbar/navigation bar has been created).
    if (rootPopoverButtonItem != nil) {
        [detailViewController showRootPopoverButtonItem:self.rootPopoverButtonItem];
    }

    [detailViewController release];
}

Почему self.splitViewController.viewControllers = viewControllers; возвращает ноль?

Ответы [ 2 ]

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

У меня такая же проблема ... хорошо ... я думаю, что вы не видите там никаких viewControllers, потому что этот метод вызывается только тогда, когда пользователь нажимает на одну из строк в rootviewcontroller. Только тогда будет присвоено массиву detailview-контроллера массиву.

Поэтому, если вы нажмете на контроллер представления, у вас будет переназначение свойства массива.

Сейчас это интересно, потому что, когда я загружаю этот файл, у меня также нет никаких контроллеров представления, назначенных этому массиву контроллеров splitview.

0 голосов
/ 17 июля 2011

Попробуйте проверить значение detailViewController в тот момент, когда вы добавляете его в свои viewControllers.

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