Я бы хотел, чтобы popover просматривался каждый раз, когда пользователь переключается с пейзажного вида на портретный вид в UIsplitView iPad. Хотя пользователь может сделать это видимым, нажав на кнопку на панели, но я хочу, чтобы это было автоматизировано для портретного режима.Как сделать всплывающее окно UIsplitview видимым в портретном режиме iPad
ответ
Внутри "- (BOOL) должен быть активирован для использования в качестве ориентира устройства. Если он является портретом, то представьте popover, как вы это делаете, чтобы сделать его видимым, когда пользователь нажимает кнопку на панели.
Все самое лучшее.
UISplitViewController отправляет сообщения своему делегату (UISplitViewControllerDelegate). Вы можете реализовать эти методы делегата, чтобы показать popover. Вы можете сделать что-то подобное в вашей «деталь контроллера» Код:
#pragma mark -
#pragma mark UISplitViewControllerDelegate implementation
- (void)splitViewController:(UISplitViewController*)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem*)barButtonItem
forPopoverController:(UIPopoverController*)pc
{
[barButtonItem setTitle:@"Your 'popover button' title"];
self.navigationItem.leftBarButtonItem = barButtonItem;
}
- (void)splitViewController:(UISplitViewController*)svc
willShowViewController:(UIViewController *)aViewController
invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
self.navigationItem.leftBarButtonItem = nil;
}
Все, что вы делаете в этих делегатах, показывает кнопку. OP хотел, чтобы popover был видимым при повороте на портрет. –
Принятый ответ (используя shouldAutorotateToInterfaceOrientation
) не работает для меня. Он либо имеет артефакты вращения (в симуляторах 4.2 и 5.0 iPad), либо показывает только при запуске и никогда не повторится при последующих вращениях (симулятор 4.3). То, что я вместо того, чтобы было создать небольшую вспомогательную функцию:
- (void)showPopoverInPortrait {
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
[self.masterPopoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
}
и называют это в - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
и - (void)viewDidLoad
также обрабатывать при запуске.
, и это должно быть реализовано, в каком виде контроллера? – user102008
Подробный контроллер просмотра вашего контроллера разделенного вида. Всего наилучшего. – gopikrishnan
этот метод был изменен в iOS 6. используйте 'didRotateFromInterfaceOrientation:' – hop