0

我有一個int pageNumber設置,就像我試圖在兩個視圖控制器之間傳遞@property (nonatomic, assign) int pageNumber;一樣。iOS - 在視圖控制器之間傳遞int

它第一次在桌面視圖中點擊一個單元格,但是如果我再次點擊一個單元格,int不會被更新。

任何想法?我的代碼如下。

LeftMenuViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" 
                  bundle: nil]; 

    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 

    SoftwareCheckViewController *sc = [[SoftwareCheckViewController alloc] init]; 

    if ([cell.textLabel.text isEqual: @"S:1 R:0"]) { 

     sc = [mainStoryboard instantiateViewControllerWithIdentifier: @"SoftwareCheckViewController"]; 
     sc.pageNumber = 1; 

    } 
    else if ([cell.textLabel.text isEqual: @"S:1 R:1"]) { 

     sc = [mainStoryboard instantiateViewControllerWithIdentifier: @"SoftwareCheckViewController"]; 
     sc.pageNumber = 2; 

    } 
    else if ([cell.textLabel.text isEqual: @"S:1 R:2"]) { 

     sc = [mainStoryboard instantiateViewControllerWithIdentifier: @"SoftwareCheckViewController"]; 
     sc.pageNumber = 3; 

    } 

    [[NSNotificationCenter defaultCenter] postNotificationName:@"pageNumberNotification" object:self]; 
} 

SoftwareCheckViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageNumberMethod) name:@"pageNumberNotification" object:nil]; 

} 


- (void)pageNumberMethod{ 

    NSLog(@"pageNumber: %i", pageNumber); 

} 

回答

0

您正在創建新的視圖控制器每次點擊一個單元格,但你是不是做與他們任何事情。如果sc不是監聽通知的控制器,則設置sc.pageNumber永遠不會有效。

另外,即使您想要一個新的控制器,[[SoftwareCheckViewController alloc] init]基本上也是一種浪費,因爲您之後會立即指定與sc不同的東西。

+0

謝謝,我想我明白了,關於如何解決這個問題的任何想法? – Sami

+0

如果它們是相關的,或者與任何共同的東西有關,你可以創建你的'LeftMenuViewController'並引用現有的'SoftwareCheckViewController'。或者,你可以爲你想要的頁面創建一個'NSNumber',並使其成爲接收者可以提取它的通知(object或userInfo)的一部分。你甚至可以將它作爲'LeftMenuViewController'的一個屬性,你當前傳遞的屬性是通知對象。 –

相關問題