UIPopover 导航按钮内的 UINavigationController 未显示

Posted

技术标签:

【中文标题】UIPopover 导航按钮内的 UINavigationController 未显示【英文标题】:UINavigationController inside UIPopover navigation buttons not showing 【发布时间】:2013-10-04 10:30:32 【问题描述】:

我有一个 iPad 应用程序,其中包含 UIPopoverControllerUINavigationController 嵌套在其中,因此它可以有一个带有“完成”和“取消”按钮的标题栏。在 ios7 中,默认情况下按钮似乎没有出现(有时如果我旋转设备并再次返回,或者我认为如果我切换到另一个应用程序然后再次返回,它们会重新出现)。奇怪的是,您仍然可以与他们互动,只是看不到他们!有没有其他人经历过这种情况,如果有,您有解决方法吗?

KNMultiItemSelector * selector = [[KNMultiItemSelector alloc] initWithItems:sortedItems
                                                           preselectedItems:nil
                                                                      title:@"Select contacts"
                                                            placeholderText:@"Search"
                                                                   delegate:self];
selector.useTableIndex = YES;
selector.allowSearchControl = YES;
selector.modalPresentationStyle = UIModalPresentationFormSheet;

UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:selector];

selector.view.frame = CGRectMake(0, 0, self.view.frame.size.width - 40, self.view.frame.size.height - 40);
nav.contentSizeForViewInPopover = CGSizeMake(self.view.frame.size.width - 40, self.view.frame.size.height - 40);
self.popover = [[UIPopoverController alloc] initWithContentViewController:nav];
self.popover.delegate = self;
[self.popover presentPopoverFromRect:CGRectMake(self.view.frame.size.width * 0.5 + self.tableView.contentOffset.x, 20 + self.tableView.contentOffset.y, 0, 0)
                                        inView:self.view
                          permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];    

KMultiItemSelector initWithItems: 方法初始化右键如下:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(didFinish)];

【问题讨论】:

检查这个:***.com/a/33669532/1463604 【参考方案1】:

事实证明,如果您在不是主线程的线程中创建弹出框/导航控制器/嵌入式视图,就会发生这种情况。将它全部移动到主线程中,按钮就会神奇地重新出现。

【讨论】:

以上是关于UIPopover 导航按钮内的 UINavigationController 未显示的主要内容,如果未能解决你的问题,请参考以下文章

Monotouch、UIPopover 和获取事件

UIPopover 和 UITableView 数据交换

UIPopover 中的导航栏

捕捉 UINavigationController 本机后退按钮操作

当模态视图可见且 iPad 旋转时,UIPopover 的内容会更改为随机方向

显示性能问题的标签栏