2013-11-26 52 views
0

我有viewcontroller .h .m和.xib包含註冊表單插入更新和刪除。如何在其他視圖控制器上的uitableview中顯示sqlite數據?

和我有其他xib包含顯示sqlite數據的uitableview .how我可以顯示???

我編寫的代碼,但它給viewcontroller頁面和viewcontroller中使用的其他控件數組上的錯誤。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [data count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 

     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 
             reuseIdentifier:CellIdentifier]; 
    } 

    cell.textLabel.text = [[data objectAtIndex:indexPath.row] valueForKey:@"name"]; 
    cell.detailTextLabel.text = [[data objectAtIndex:indexPath.row] valueForKey:@"salary"]; 

    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    name.text = [[data objectAtIndex:indexPath.row] valueForKey:@"name"]; 
    salary.text = [[data objectAtIndex:indexPath.row] valueForKey:@"salary"]; 
} 

這裏的數據是viewcontroller.h文件NSArray這裏給出錯誤

以及在didSelectRowAtIndexPath方法name.textsalary.text給出錯誤,因爲它是視圖 - 控制的文本字段。

我該如何解決它?

回答

1

您必須確保數據數組在其他ViewController中可用。爲此,在OtherViewController的.h文件中創建數組屬性,並在加載此視圖控制器時,將數據數組分配給此屬性。

就像你正在使用SQlite數據庫一樣,你可以從數據庫中取數據(你需要添加額外的代碼)到OtherViewController中,並在那裏顯示它的tableView。

此外,您不能在不同的視圖控制器內訪問視圖控制器的私有變量。您必須爲它們創建屬性或創建公共方法。

+0

你好 thanx的答覆我... – MAC113

+0

你好 thanx回覆我... 我想問一下,我在viewcontroller中編程創建可用。而otherviewController有註冊表單。當我點擊其他視圖控制器的提交按鈕時,它顯示視圖控制器的tableview中的sqlite數據..... 有可能做....因爲註冊表單上的Otherviewcontroller和tableview是在Viewcontroller ... PLZ它的非常隱含...... – MAC113

+0

在-viewWill中有一個viewController,它有tableView,從數據庫重裝數據並重載tableView。要重新加載tableView,請使用'[tableView reloadData]'。只有刷新了tableview的數據源後才調用它。 –

0

像這樣做。首先創建臨時詞典,不是從獲取數據..

NSDictionary * tmpDictn = [data objectAtIndex:indexPath.row]; 
cell.textLabel.text = [tmpDictn valueForKey:@"name"]; 
cell.detailTextLabel.text = [tmpDictn valueForKey:@"salary"]; 

而且同樣在這裏..

NSDictionary * tmpDictn = [data objectAtIndex:indexPath.row]; 
name.text = [tmpDictn valueForKey:@"name"]; 
salary.text = [tmpDictn valueForKey:@"salary"]; 
相關問題