der*_*ida 49 cocoa-touch popover ios
我有弹出窗口的问题.如果我点击一个单元格,我将加载一个弹出框以选择更多细节.一切正常,但当我再次按下我的手机时,我每次都收到以下信息:
警告:尝试在MainTableViewController上呈现ModalTableViewController ...已经呈现(null)
如果我点击另一个单元格,我将不会收到此警告.仅当再次点击同一行时.
我尝试了很多东西,但我无法解决这个问题.我像这样加载我的popover:
var popover: UIPopoverController!
var popoverContent: ModalTableViewController!
Run Code Online (Sandbox Code Playgroud)
在我的手机上点击:
popoverContent = self.storyboard.instantiateViewControllerWithIdentifier("ModalTableViewController") as ModalTableViewController
popoverContent.selectedQuestionID = indexPath!.row
popover = UIPopoverController(contentViewController: popoverContent)
popover.delegate = self
popover.presentPopoverFromRect(currentCell.LabelCellTitle.frame, inView: currentCell.LabelCellTitle.superview, permittedArrowDirections: UIPopoverArrowDirection.Left, animated: true)
Run Code Online (Sandbox Code Playgroud)
并解雇
func popoverControllerDidDismissPopover(popoverController: UIPopoverController!) {
popover.dismissPopoverAnimated(false) // just to check
self.popover = nil
self.popoverContent = nil
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:
如果我检查:
if(self.popoverContent == nil) {
Run Code Online (Sandbox Code Playgroud)
在打开它之前,我会发现当我再次敲击同一个细胞时它不是零.
再次编辑:
如果我使用一些不同的设置创建它,我会遇到同样的问题:
自定义1x1px按钮.用popue连接popover.在单元格点击移动按钮到单元格并打开弹出窗口.
所以没有用于打开popover的代码,只有storyboard编辑器.
我得到相同的错误消息(有时),如果我再次点击相同的弹出窗口.
Ste*_*eve 137
我有这个问题,因为我试图从内部执行segue/present:
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
Run Code Online (Sandbox Code Playgroud)
我改成了:
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
Run Code Online (Sandbox Code Playgroud)
它修好了!
Aac*_*ace 55
我还没有快速,但对于Objective-C,我最终在performSelector调用中包装presentViewController调用.
-(void) present
{
[self performSelector: @selector(ShowModalTableViewController) withObject: nil afterDelay: 0];
}
-(void) ShowModalTableViewController
{
[self presentViewController: ctrlModalTableViewController animated: true completion: nil];
}
Run Code Online (Sandbox Code Playgroud)
Har*_*ris 52
这也可以:
dispatch_async(dispatch_get_main_queue(), ^ {
[self presentViewController:vc animated:YES completion:nil];
});
Run Code Online (Sandbox Code Playgroud)
看来这是通过弹出窗口呈现任何东西都是如此.之前所有响应都起作用的原因很可能是因为在弹出窗口(或活动表或类似)被取消之前所采取的任何操作都会发生.
如果可以的话,首先尝试解除弹出窗口,然后展示你的模态.
| 归档时间: |
|
| 查看次数: |
35706 次 |
| 最近记录: |