oOOMIAO 2013-07-01 02:42 采纳率: 10%
浏览 1989
已采纳

一个视图到另一个视图重装table

从MySliderController.m的 MyView.m重装table失败。在 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];
}

方法调用,但是表没有重装,我已经检测了表的存在性:

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

在控制台结果为空。

然后又用下面代码检查:

- (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}>

谢谢您的帮助。

  • 写回答

1条回答

  • Chengzi_963 2013-07-01 06:53
    关注

    在初始化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];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?