- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UIStoryboardPopoverSegue
来呈现 iOS 5 iPad 应用程序的弹出窗口。 Segue 效果很好,但似乎包含该按钮的工具栏是弹出窗口 Controller 的直通 View ,因此如果您继续按该按钮,则会出现更多弹出窗口。由于我没有自己创建和跟踪 UIPopoverController
(因为 Storyboard 正在这样做),因此当再次触摸按钮时我无法将其关闭。还有其他人遇到过这个吗?我向 Apple 提出了一个错误,但他们尚未回复。
编辑:我已经使用下面的答案解决了这个问题。这是我最终使用的代码。 currentPopover
是我的 View Controller 类中的 __weak
ivar,因此当 Controller 完成时,它将自动降至 nil。
- (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];
}
}
最佳答案
您的解决方案 Cory 存在一些视觉问题。
可以考虑的两个选项 - 只需删除或更改呈现弹出框的按钮的操作即可。
选项 1,将指针指向按钮的操作,并在弹出窗口出现后,将操作设置为 nil。弹出窗口消失后重置为原始操作。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
action = [sender action];
[sender setAction:nil];
self.currentPopover = [(UIStoryboardPopoverSegue *)segue popoverController];
self.currentPopover.delegate = self;
}
-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
[self.navigationItem.rightBarButtonItem setAction:action];
return YES;
}
这样,弹出窗口只能出现一次,并且将按预期消失。
第二个选项是更改按钮的功能,以便当弹出窗口可见时,点击按钮将导致弹出窗口消失。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
action = [sender action];
target = [sender target];
[sender setTarget:self];
[sender setAction:@selector(dismiss:)];
self.currentPopover = [(UIStoryboardPopoverSegue *)segue popoverController];
self.currentPopover.delegate = self;
}
-(void)dismiss:(id)sender
{
[self.navigationItem.rightBarButtonItem setAction:action];
[self.navigationItem.rightBarButtonItem setTarget:target];
////or
// [sender setAction:action];
// [sender setTarget:target];
[self.currentPopover dismissPopoverAnimated:YES];
}
-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
[self.navigationItem.rightBarButtonItem setAction:action];
[self.navigationItem.rightBarButtonItem setTarget:target];
return YES;
}
关于iphone - UIStoryboardPopoverSegue 在按钮触摸时打开多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7758837/
我正在使用 UIStoryboardPopoverSegue 来呈现 iOS 5 iPad 应用程序的弹出窗口。 Segue 效果很好,但似乎包含该按钮的工具栏是弹出窗口 Controller 的直通
首先,我发现了一个类似的问题,但它并没有做我想要的完全相同的事情:UIStoryboardPopoverSegue opening multiple windows on button touch 我
我有一个 UISplitViewController,其主 Controller 在 UINavigationController 中嵌入了一个 UIViewController。工具栏按钮负责通过
我是一名优秀的程序员,十分优秀!