首先,我发现了一个类似的问题,但它没有做我想要的完全相同的事情:UIStoryboardPopoverSegue opening multiple windows on button touch
我有一个带有按钮的工具栏,其中显示了一个popOver,所有这些都与故事板相连。
问题在于每次按下按钮时,都会出现一个新的popOver,而不是前一个。
在另一个问题中,他们建议使用以下代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue isKindOfClass:[UIStoryboardPopoverSegue class]]){
// Dismiss current popover, set new popover
[currentPopover dismissPopoverAnimated:YES];
currentPopover = [(UIStoryboardPopoverSegue *)segue popoverController];
}
}
但它的作用是,当你按下按钮时,它会关闭之前的popOver(如果有的话)并继续使用segue来显示一个新的popOver。
我想要做的是按钮充当切换,这意味着如果有一个(没有显示新的),它会解散popOver,如果没有,则显示popOver。
顺便说一句,那就是在没有故事板的情况下,它是如何为我工作的。