Раскадровки: откройте UIViewController из раскадровки как всплывающее окно из изображения в UITableViewCell.

У меня есть пользовательский класс UITableViewCell, и в пользовательской ячейке есть кнопка изображения, которая связана с методом в классе ячейки. Когда этот метод срабатывает, я хочу запустить потерянный UIViewController из раскадровки внутри всплывающего окна. Я пробовал несколько методов для этого. Интерфейсный конструктор не будет компилироваться, если я добавлю UIViewController в качестве перехода от кнопки в ячейке прототипа. У кого-нибудь есть предложения?

ОБНОВЛЕНИЕ: у меня получилось работать со следующим:

UITableView *tv = (UITableView *) self.superview;
UITableViewController *vc = (UITableViewController *) tv.dataSource;

UIStoryboard *storyboard = vc.storyboard;
UIViewController *actionView = [storyboard          
     instantiateViewControllerWithIdentifier:@"ActionView"];

popoverController = [[UIPopoverController alloc]
                                          initWithContentViewController:actionView];
popoverController.popoverContentSize = CGSizeMake(320, 416);

[popoverController presentPopoverFromRect:self.actionButton.bounds      
    inView:self.actionButton
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  

person chrislhardin    schedule 21.11.2012    source источник


Ответы (1)


Вы должны иметь возможность использовать instantiateViewControllerWithIdentifier: из UIStoryboard для выбора любого контроллера представления, если вы правильно его идентифицировали. (Поскольку самый простой способ получить ссылку на раскадровку — это какой-то контроллер представления, который уже получен от него, вы можете захотеть, чтобы ячейка уведомляла текущий контроллер об этом... это зависит от того, как ваши объекты связаны.)

person Phillip Mills    schedule 21.11.2012
comment
да, это работает, но мне нужно привязать и указать направление для кнопки в пользовательской ячейке таблицы? - person chrislhardin; 22.11.2012
comment
Я не уверен, что понял это предложение, но я сделаю предположение.... :) Если вы используете уведомление из ячейки, и контроллер представления слушает это, вы можете передать ссылку на ячейку как объект уведомления, или вы можете заполнить словарь userinfo, чтобы VC имел доступ ко всему, что знает ячейка. - person Phillip Mills; 22.11.2012