簡體   English   中英

值未在iOS的表格視圖中顯示

[英]Values are not displaying in table view in ios

我已經在ViewController中聲明了一個數組,並在表格視圖中顯示了它。 我正在從EditViewController傳遞數組的值。 但是這些值未顯示在表格視圖中。 我正在使用以下代碼。

ViewController.h

 @property (nonatomic, strong) NSMutableArray *tableData;

ViewController.m

ViewDidLoad:

   tableData = [NSMutableArray arrayWithObjects:@"",nil];

- (UITableViewCell *)tableView:(UITableView *)tableView
  cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 static NSString *CellIdentifier = @"Cell";
 UITableViewCell *cell = [tableView 
 dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
 cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
 return cell;
}

EditViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  ViewController *vc;
  vc = [segue destinationViewController];    
  NSString *str = [NSString stringWithFormat:@"%ld", selectedRow];
  [vc.tableData addObject:str];
}

請指教。

如果tableview本身沒有數據,請在以下位置打斷點

 cellForRowAtIndexPath,

而且,如果dsnt達到斷點,則將Tableview的Delegate和Data源與View Controller連接。

[EDIT]如果仍未調用,請轉到情節提要,檢查tableview的邊界是否大於vc的邊界,這意味着檢查tableview是否在視圖控制器內部,並且沒有tableview的任何部分交叉視圖控制器的邊界。

在editViewController的viewDidLOad中將委托和數據源連接到self

    tableView.delegete=self;
    tableView.Datasource=self;

您將字符串添加到未分配的nsarray對象。 您必須使用字符串創建nssarray並傳遞給vc.tableData。

可能有一些問題。

首先,最好將NSMutableArray屬性“ tableData”設置為segue期間傳入的現有數組。 現在,您正在向可變數組中添加單個字符串,除非您為其中要分配初始化了NSMutableArray的ViewController編寫了自定義初始化程序,否則它必須存在,直到執行完Segue之后的ViewDidLoad為止,因此,您要將字符串傳遞到“ nil”的黑色深淵。

最好在prepareForSegue中使用基本類型作為接收屬性,然后在您的情況下,將ViewController的數組傳遞給EditViewController中已經存在的數組。

另外,您可能沒有告訴視圖控制器實際要創建多少個單元格。 確保numberOfSectionsInTableView返回一個值(在這種情況下僅為1),並且numberOfRowsInSection返回“ [self.tableData count]”。

而且,如果您沒有將ViewController創建為繼承自UITableViewController,則需要進行設置,並像Light Yagami所指出的那樣在情節提要中手動連接委托和數據源。 盡管創建一個繼承自UITableViewController的新自定義類文件可能會更容易,因為它將為您提供一些良好的樣板代碼。

還要確保在情節提要中,將TableViewController的類設置為自定義類文件。

請確保您有

-tableView:numberOfRowsInSection:

方法定義。 此方法應返回大於0的值,以便

-tableView:cellForRowAtIndexPath:

被叫。

希望您不要將numberOfSectionsInTableView傳遞為0。請檢查一次。 根據需要,必須為1或更大。 與numberOfRowsInSection相同。

ViewDidLoad方法中刪除此行

tableData = [NSMutableArray arrayWithObjects:@"",nil];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM