问题描述
- 一个视图到另一个视图重装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}>
谢谢您的帮助。
解决方案
在初始化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];
时间: 2024-09-20 06:06:08