popover tableview 显示然后消失

Posted

技术标签:

【中文标题】popover tableview 显示然后消失【英文标题】:popover tableview shows then disappears 【发布时间】:2013-07-15 14:43:08 【问题描述】:

单击按钮时,我将显示一个弹出视图,它是一个表格视图。

似乎一切正常,视图显示,但不到一秒钟就消失了。

tableview 包含一个字符串列表,我将 tablecell 设置为显示复选标记。

我注意到表格显示了在它显示的瞬间检查的所有项目

任何人都知道我错过了什么。

谢谢

哈桑

显示弹出框的代码

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    if ([segue.identifier isEqualToString:@"WholesalersList"])
        AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

        WholesalersViewController *vc = segue.destinationViewController;
        vc.wholesalers = [appDelegate.wholesalers mutableCopy];
        if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]])
            self.wholesalersPopoverController = [(UIStoryboardPopoverSegue *)segue popoverController];
            [self.wholesalersPopoverController setPopoverContentSize:CGSizeMake(334, 334)];
            //[self.wholesalersPopoverController setDelegate:self];
        
    

弹出表视图中的代码

#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)theTableView 
    return 1;


- (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section 
    if ([self.wholesalers count] == 0) 
        return 1;
    
    else 
        return [self.wholesalers count];
    


#pragma mark Table view delegate
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    if ([self.wholesalers count] == 0) 
        return nil;
    
    else 
        static NSString *CellIdentifier = @"WholesalerCell";

        UITableViewCell *cell = [theTableView dequeueReusableCellWithIdentifier:CellIdentifier];

        // Configure the cell.
        Wholesaler *ws = (Wholesaler *)[self.wholesalers objectAtIndex:indexPath.row];

        cell.textLabel.text = ws.name;

        return cell;
    


- (CGFloat)tableView:(UITableView *)theTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    return 44;


- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 


- (void)tableView:(UITableView *)theTableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 


- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
    return NO;      // The table view should not be re-orderable.

【问题讨论】:

没有代码,我们如何帮助您? 用代码更新问题。谢谢 感谢 soryngod 让代码看起来更好 developer.apple.com/library/ios/#documentation/WindowsViews/… 【参考方案1】:

是否在代码中的任何位置调用了dismissPopover:Animated,例如错误地在按钮的IBAction方法中,或者您没有IBAction方法?

【讨论】:

我很赞同。很好看!谢谢你。我的 IBAction 中有这段代码 if (self.wholesalersPopoverController == nil) [self performSegueWithIdentifier:@"WholesalersList" sender:self]; else [self.wholesalersPopoverControllerdismissPopoverAnimated:YES]; self.wholesalersPopoverController = nil;我仍然不知道为什么 else 部分正在执行。这是因为当我评论它时它起作用了。感谢您发现 H

以上是关于popover tableview 显示然后消失的主要内容,如果未能解决你的问题,请参考以下文章

使用从popover pickerview中选择的字符串数组自动刷新tableview

关闭 Popover 后更新第一个视图

如何在 Popover 的 TableView 选择中禁用动画?

弹出框控制器无法正确显示视图

iOS tableView在刷新时出现界面消失,cell不显示问题

自定义一个在鼠标移入弹窗时不消失的基于Bootstrap的popover