2012-05-13 91 views
0

我一直在尋找幾個地圖,如果他們將任何信息傳遞給下一個視圖,那麼只需要一行或更多的代碼即可調用新視圖。此刻,我想建立一個賽格瑞菜單是這樣的:prepareForSegue不會初始化新視圖

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {   
    NSIndexPath *path = [self.tableView indexPathForSelectedRow]; 
    if ([path row]==0) { 
     MainViewController *mtvc = (MainViewController *)[segue destinationViewController]; 
    } else { 
     SettingsViewController *svc = [segue destinationViewController]; 
    }  
} 

Normaly所有例子都使用「segue.identifier isEqualToString://」」」。但是我無法將故事板中的表格視圖的單元格連接到多個其他視圖。因此,我使用選定的行來識別哪些視圖應該繼續播放。

我不知道這可能occure的問題,但我初始化從我splashview以這種方式實現代碼如下:

-(void)turnNext { 
    UIStoryboard *storyboard = self.storyboard; 
    MenuTableViewController *mtvc = [storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 
    [self presentViewController: mtvc animated:YES completion:nil]; 
} 
+0

你不使用UINavigationController? – Martol1ni

+0

我選擇了表格視圖並嵌入了導航控制器。從菜單延續到其他視圖還有其他方式嗎? –

+0

你爲什麼使用segues而不是pushViewController?我只是好奇:) – Martol1ni

回答

0
-(void)turnNext { 
    UIStoryboard *storyboard = self.storyboard; 
    MenuTableViewController *mtvc = [storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 

    [self presentViewController: mtvc animated:YES completion:nil]; 
} 
      ^^^^^^ 

變化,要

[self.navigationController pushViewController:mtvc animated:YES]; 
+0

這會改變我的問題後的步驟?因爲切換到表視圖只是用我的代碼... 我可以總是以編程方式切換視圖,但我總是讀你不應該在項目中使用故事板時經常使用這種方式 –

0

您應該使用爲此目的繼續下去。

  • 在故事板中的源控制器上創建2個自定義細分。
  • 設置其標識爲 'segueToMainViewController' 和 'segueToSettingsViewController'

現在,在的tableView - 'didSelectRowAtIndexPath方法' 的方法使用以下。

//use your logic here 

if(indexPath.row == 1) { 
    [self performSegueWithIdentifier:@"segueToMainViewController" sender:nil]; 
} 
else { 
    [self performSegueWithIdentifier:@"segueToSettingsViewController" sender:nil] 
} 

如果您需要爲控制器配置任何東西,您可以將數據作爲發送方傳遞。