【问题标题】:How to reload table of one view from other view如何从另一个视图重新加载一个视图的表
【发布时间】:2013-06-29 14:04:52
【问题描述】:

我正在尝试从 MySliderController.m 重新加载 MyView.m 表,但它没有重新加载。 我在 MyView.m 中声明了以下方法

 -(void)updateData{
      [self.itablview reloadData];
 }

并通过下面的代码从 MySliderController.m 类中调用该方法

 DDMenuController *menuController = (DDMenuController*)((AppDelegate*)[[UIApplication sharedApplication] delegate]).DDmenuController;
MyView *obj = [[MyView alloc]init];

if(indexPath.row == 3){
    [menuController showRootController:YES];
    [obj updateData];
}

该方法被调用,但表格没有重新加载,即使我通过下面的代码检查 tableview 的存在

-(void)reloadtable:(id) sender{
    NSlog(@"%@",self.itableview)
    [self.itableView reloadData];
}

在控制台中我得到 (null)

但是当我检查下面的代码时

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"%@", self.itableView);
}

我收到以下消息。这意味着表存在

2013-06-29 19:31:48.673 slidingViews[7025:c07] <UITableView: 0x79d9400; frame = (0 0; 320 480); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x714e940>; layer = <CALayer: 0x714e3f0>; contentOffset: {0, 0}>

what can be the issue. Please check my code here 
https://github.com/kanwarpalSingh/mycode

【问题讨论】:

  • MyView *obj = [[MyView alloc]init]; 创建了一个新实例,我猜,你想加载existing 实例的表。
  • 这是两个不同的屏幕吗?如果是这样,只需在视图中执行它就会出现......
  • 是的.. 你也可以在github.com/kanwarpalSingh/mycode查看我的代码
  • @AnoopVaidya .. 如果我想重新加载现有的实例表。那么它接受 didselectrowatindexpath 吗?

标签: iphone objective-c uitableview ios6


【解决方案1】:

您的问题是,当您实例化 MyView 时,您实际上是在创建 MyView 视图控制器的新(但不可见)版本,而不是原来的 MyView。有几种不同的方法可以解决这个问题,最终归结为最适合您的方法。

一个例子是订阅MyView 到来自MySliderControl 的自定义通知,例如...

MyView.m

- (void)viewDidLoad
{
 [[NSNotificationCenter defaultCenter] removeObserver:self];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateData:) name:@"updateDataOnMyView" object:nil];
}

MySliderControl.m

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateDataOnMyView" object:nil];

如果您不喜欢这种设置,也可以使用委托方法。还有很多关于创建自己的代表的教程。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多