用tableview重新加载uiviewcontroller的table view subobject的数据

Posted

技术标签:

【中文标题】用tableview重新加载uiviewcontroller的table view subobject的数据【英文标题】:Reload data of table view subobjec of uiviewcontroller with tableview 【发布时间】:2012-11-15 13:59:34 【问题描述】:

我有一个 SelezionaProfilo 课程,在这个课程中我有一个玩家列表:

@interface SelezionaProfilo : UIViewController < UITableViewDelegate, UITableViewDataSource >  

  UITableView *myTableView;
  //my staff


@property (nonatomic, retain) IBOutlet UITableView *myTableView;

一切正常。

我已经构建了一个嵌入在导航控制器中的子类 SelectPlayerViewController,因为我希望对推送一行有不同的反应:

  @interface SelectPlayerViewController : SelezionaProfilo 

一切正常,我有球员名单。而我有不同的行动。

在 SelectPlayerViewController.m 中,我在导航栏上添加了一个按钮,在推送导航中添加了转到另一个类的播放器按钮。 现在播放器已创建,但是当视图返回到 SelectPlayerViewController 时,我看不到最后一个播放器。

在 SelezionaProfilo.m 中:

- (void)viewWillAppear:(BOOL)animated    
    [self.myTableView reloadData];
    [super viewWillAppear:animated];

在 SelectPlayerViewController.m 中

- (void)viewDidAppear:(BOOL)animated    
    [super.myTableView reloadData];

我确定输入这个方法,但是表格没有刷新。 我有一个选项卡,我在另一个选项卡中有 SelezionaProfilo,如果我选择这个,我可以看到最后一个玩家,所以 SelezionaProfilo 类可以正常工作。

谁能推荐我? 谢谢

【问题讨论】:

尝试从 SelectPlayerViewController 中移除 viewDidAppear: 方法,并在 SelezionaProfilo 的 viewWillAppear: 方法中切换语句的顺序。 (它可能无法解决问题,但它会更有意义。)除此之外,我建议记录从 tableView:numberOfRowsInSection: 返回的值并查看它是否符合您的预期。 感谢您的回答,我现在无法尝试,我的 Mac 在家。我可以尝试在 viewWillAppear 晚上切换顺序。所以我确定数组会刷新,但它不会进入表格视图方法,所以行数减少了。 【参考方案1】:

我解决了!!! 所以如果有人感兴趣....

我在 xib 中有一个表视图,我必须将它与 File's Owner 连接到两个引用插座:

view
myTableView

【讨论】:

以上是关于用tableview重新加载uiviewcontroller的table view subobject的数据的主要内容,如果未能解决你的问题,请参考以下文章

每秒重新加载 Tableview 部分会导致闪烁

通过重新加载 10-10 新闻扩展 tableView 行中的问题

RxSwift 如何知道 TableView 重新加载结束

重新加载 tableView 部分而不重新加载标题部分 - Swift

多次重新加载 TableView Swift

从 UITableViewController 重新加载 tableView