程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> uitableview-一個視圖到另一個視圖重裝table

uitableview-一個視圖到另一個視圖重裝table

編輯:編程綜合問答
一個視圖到另一個視圖重裝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];
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved