2 ooomiao oOOMIAO 于 2013.07.01 10:42 提问

一个视图到另一个视图重装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
Chengzi_963   2013.07.01 14: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];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
授予用户select另一个用户所有表和视图的权限
刚遇到一个问题,一个用户要建视图查询另一个用户的表, 本想使用 grant select any table to B 但是报权限不足。 于是:用A用户登录,然后执行: select 'grant select on '||table_name ||' to b;' from user_tables ; 然后把结果都执行一下。 转载地址:http://bl
oracle中,创建其他用户表的对应视图
需求是这样:在A用户下,需要批量生成B用户的所有表对应的视图。在网上找了很多例子,最后用比较容易的方法解决了。 注意,不能简单的赋予A用户DBA权限,有些操作也是无效的;另外不能授权所有权限给A用户,否则A用户可以删除B用户中的表。 方法如下: 1.授权B用户connect,resource角色权限,再授予create any view、select any table系统权限。 2.由于
mfc资源视图在另一个编辑器中打开
在我们vs初学者刚刚接触mfc编程时,常常遇到mfc资源视图在另一个编辑器中打开,下面是解决方案。 一般这种情况是打开了头文件中的resource.h造成的,关闭该文件,在资源视图中重新打开即可。(双击.rc再双击) -
通过 SQL Server 视图访问另一个数据库服务器表的方法
-访问不同电脑上的数据库(远程只要联好网就一样)          --如果经常访问或数据量大,建议用链接服务器          --创建链接服务器     exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'     exec   sp_addlinkedsrvlogin   'srv_lnk','false',...
asp.net mvc在一个控制器中返回另外一个控制器的视图
调用其他控制器返回result:    ReflectedControllerDescriptor RefControllerDescriptor = new ReflectedControllerDescriptor(typeof(AnotherController));                         ActionDescriptor Actescriptor =
(十六)yii2 视图中渲染到另一个视图中
view->renderFile('@app/views/newView/index.php', [ 'model' => $model ]); ?>
视图控制器上添加另一个控制器的View
//创建UIPageViewController let pageViewController:UIPageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil); //将UIPageViewController添加到试图控制
VS2013 MFC对话框编程,资源视图--显示在另一个编辑器中打开
问题如下图; 解决办法: 一般这种情况是打开了头文件中的resource.h造成的,关闭resource.h,在资源视图中重新打开即可。(双击.rc再双击) 如图:
iOS添加一个view到所有视图的上面
[[UIApplication sharedApplication] keyWindow] 首先获取到keyWindow, 然后addSubView: 就可以了. 保证视图在最上层.
关于在视图控制器上添加另一个控制器的View的问题
最近的项目由于项目需要,涉及过多次在当前控制器上添加另一个控制器的View问题。这里做个笔记,为了方便,当前视图控制器记为控制器1,添加的视图记为控制器2 1.首先,因为控制器2的视图上有需要与用户交互的需求,所以一定要设置2为1的子控制器       ViewController *vc2 = [[ViewController alloc]init];       [self addChi