2014-07-03 71 views
1

我有FirstViewControllerSecondTableViewController。在SecondTableViewController.m中,我在cellForRow...方法中創建了一個單元格,其中cell.textLabel.text是來自SecondTableViewController的NSInteger屬性(「count」)的字符串。在另一個viewController的tableView中使用的更新屬性

我想要一個按鈕FirstViewController增加值count

我試着製作FirstViewController一個屬性,然後使用:

@property SecondTableViewController *viewController; 

- (IBAction)buttonTouched:(id)sender { 
    self.viewController.count++; 
    [self.viewController.tableView reloadData]; 
} 

但這種方式是行不通的。 count仍然是其原始值爲零。我還重新加載了viewWillAppear中的表格,但仍然沒有任何結果。我怎樣才能做到這一點?

+0

正常的模式是第一個VC和你的應用程序的模型第二VC共享訪問。該模型可以有一個計數屬性,第一個VC增量和第二個VC讀取。 – danh

+0

您可能希望與代表一起進行此操作,而不是保留可能會被銷燬的視圖控制器的實例。 – brandonscript

+0

好的,我認爲我現在更好地理解了這個想法,但如何才能與代表完成呢? – Benck

回答

0

作爲一個屬性使用的計數可能是你要去錯的地方,因爲count是一個方法,它返回在基礎框架中找到的數組中的對象數。另外請記住,如果要將整數存儲到字符串對象中,請嘗試以此格式存儲它。

cell.textlabel.text = [NSString stringWithFormat: @"%i", count]; 

希望這有助於

+0

viewControllers不是數組,因此本身不具有該屬性'count'。同意它應該明確命名,但這不是問題。 – brandonscript

0

編輯

Its the <code>FirstViewController</code>, in which I had passed only one object reference of <code>SecondTableViewController</code>Its the <code>SecondTableViewController</code> in which you only need to implement <code>viewWillAppear</code> method and reload the table

退房這兩個圖像,並實現類似的邏輯,並得到解決。

----- END新的編輯-----

OLD

我想你還沒有分配和SecondTableViewController參考,即分配的內存,在FirstViewControllerself.viewController的其viewDidLoad方法即

-(void) viewDidLoad //In FirstViewController 
{ 
    self.viewController = [[SecondTableViewController alloc] init]; 
} 

並推相同的附圖上的堆棧後執行按鈕輕擊以增加變量SecondTableViewController的計數。

如果你不清楚,評論。

+0

我確實分配了內存,但仍然存在相同的問題 – Benck

0

嘗試以下

firstViewController.h 

@interface DMFirstViewController : UIViewController 

@property (nonatomic, strong) DMSecondViewController * secondController; 

- (IBAction)buttonPressed:(id)sender; 

@end 



firstViewController.m 

- (IBAction)buttonPressed:(id)sender 
{ 
    ++self.secondController.count; 
    [self.navigationController pushViewController:self.secondController animated:YES]; 

} 


secondViewController.h 

@property (nonatomic) int count; 


secondViewController.m 

-(void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    NSLog(@"%d", self.count); 


} 
相關問題