Невозможно передать сообщения между контроллером основного вида и представлением popover - PullRequest
1 голос
/ 05 мая 2011

Кажется, я не могу установить какую-либо связь между моим главным контроллером представления и контроллером табличного представления, который отображается в представлении Popover (iPad).

Я настраиваю табличное представление внутри контроллера навигации обычным способом:

// create popover
    if (self.popoverController == nil) {

    filesViewController = [[[MyTableViewController alloc] initWithFiles:fileList] autorelease];

    UINavigationController *navCtrl = [[[UINavigationController alloc] initWithRootViewController:filesViewController] autorelease];

    self.popoverController = [[UIPopoverController alloc] initWithContentViewController:navCtrl];

        self.popoverController.delegate = self;

        // resize popover
        self.popoverController.popoverContentSize = CGSizeMake(320.0, 44 + [fileList count] * 44);
    }

Все работает нормально, и я передаю массив имен файлов (fileList) в табличное представление, которое содержится в табличном представлении как массив с именем listOfFiles. В табличном представлении отображаются имена файлов, и когда пользователь выбирает их, я хочу передать это имя обратно в контроллер основного представления. Однако я не могу получить какую-либо связь, возвращающуюся из метода didSelectRowAtIndexPath табличного представления в главный виртуальный канал. Я пробовал все виды розеток, идущих в разных направлениях, и я пытался создать новый объект в didSelectRowAtIndexPath для обработки имени файла, полученного из табличного представления. Я могу передать имя файла новому объекту, но когда я пытаюсь отправить его в главный VC, оно снова становится нулевым. Все, что я посылаю своему главному виртуальному каналу, пока этот поповер активен, считается нулевым.

    - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {

    NSLog(@"%@", handler.addressForImageFile);

    self.popoverController = nil;
    [self.popoverController release];
}

Есть ли какая-то причина, по которой мой главный виртуальный канал не получит ничего, кроме нулевых объектов, из моего табличного представления? Я провел дни, пробуя так много разных вещей. Мне кажется, что в моих знаниях о том, как работают поповеры, есть какой-то фундаментальный пробел. Конечно, есть простой способ отправить строку обратно в мой главный виртуальный канал, если она выбрана в представлении таблицы?

Большое спасибо за любую помощь!

1 Ответ

0 голосов
/ 05 мая 2011

Вероятно, есть гораздо лучший способ сделать это, но в зависимости от цели передачи строки одним из способов может быть использование NSUserDefaults.

...