Ios6 didSelectRow切换到另一个视图后Popover未解除
我使用的是Xcode 4.5,目标是iOS6。 前言:我有一个libraryView(显示视图控制器),带有一个包含搜索的popover。显示搜索结果后,点击一行将关闭库并转到entryView。这一切都很好。 我的问题:在关闭entryView并返回libraryView时,搜索弹出框仍然可见。 我尝试了许多不同的方法来解决这个问题: 我在segue中添加了一个通知观察者到搜索popover,发布了来自搜索控制器的通知,从entryView发布到libraryView中的以下方法。是的,libraryView确实具有此方法的addObserver:Ios6 didSelectRow切换到另一个视图后Popover未解除,ios6,notifications,popover,uistoryboardsegue,dismiss,Ios6,Notifications,Popover,Uistoryboardsegue,Dismiss,我使用的是Xcode 4.5,目标是iOS6。 前言:我有一个libraryView(显示视图控制器),带有一个包含搜索的popover。显示搜索结果后,点击一行将关闭库并转到entryView。这一切都很好。 我的问题:在关闭entryView并返回libraryView时,搜索弹出框仍然可见。 我尝试了许多不同的方法来解决这个问题: 我在segue中添加了一个通知观察者到搜索popover,发布了来自搜索控制器的通知,从entryView发布到libraryView中的以下方法。是的,lib
- (void)searchComplete:(NSNotification *)notification
{
NSLog(@"SearchPopover dismiss notification?");
[_searchPopover dismissPopoverAnimated:YES];
}
我在测试中添加了
if (_searchPopover.popoverVisible)
{
[_searchPopover dismissPopoverAnimated:YES];
}
要查看DIDLOAD、VIEW将出现、VIEW将消失、从NIB唤醒。。。都在图书馆里。我将searchPopover作为一个属性,并尝试将其作为ivar。
我试过的任何东西都不会在赛格开始前或回来后丢弃这件府绸
有人有什么想法吗?非常感谢您的帮助 我找到了解决这个问题的方法。。。在以下答案中找到它: 但是,还有一小步要做。。。更正答案中的键入错误,并将“dismissPopover”方法更改为NSNotification方法。我为popover添加了一个segue,这通常是不必要的。不过,关键是将父级的popover定义设置为UIStoryBoardPopoOverSegue 然后,使用通知让家长知道它应该解除 从父视图:
- (void)viewDidLoad
{
... other loading code...
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(dismissSearch:) name:@"dismissSearch" object:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SearchSegue"])
{
[segue.destinationViewController setDelegate:self];
_searchPopover = [(UIStoryboardPopoverSegue *)segue popoverController];
}
}
- (void)dismissSearch:(NSNotification *)notification
{
NSLog(@"SearchPopover dismiss notification?");
[_searchPopover dismissPopoverAnimated:YES];
}
在我的子视图(SearchView)中。理想情况下,它将位于didSelectRowAtIndexPath中。我发现它也可以在视图中显示搜索的项目,这是我通常放置addObserver的地方。在这种情况下,它是一个后通知
[NSNotificationCenter.defaultCenter postNotificationName:@"dismissSearch" object:nil];
最后一点注意:我正在使用一个iAction,在点击按钮时检查popover的可见性。。。显示或取消。发现使用此方法以及其他方法会导致popover在点击按钮时立即关闭!注释掉if/else检查的可见性解决了这个问题
感谢rdelmar带领我走上这条路