2014-01-20 34 views
0

我正在撕掉我的頭髮。我有一個菜單視圖,有2個按鈕。每個按鈕都通過單獨的segue標識符路由到另一個視圖控制器。也就是說,他們都指向相同的視圖控制器,但在不同的階段。如何投射到我的UIViewController

我的研究表明,我需要'投射'到我的目標視圖控制器,我不能爲我的生活找到有效的代碼,也許,也許更復雜,在哪裏放代碼。

這些都是在我的目的地/的properties TankCalculatorViewController視圖控制器頭文件:

// Properties for segue identifiers 
@property(nonatomic, readonly) NSString *tankCalcOne; 
@property(nonatomic, readonly) NSString *tankCalcTwo; 

此代碼是在我的菜單實現文件:

// This allows the view for tankCalcOne or Two depending on which button is clicked in the menu 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    //cast??? 

    if ([segue.identifier isEqualToString:@"tankCalcOne"]) 
    { 
     [[segue destinationViewController] TankCalculatorViewController:self]; 
    } 
    else ([segue.identifier isEqualToString:@"tankCalcTwo"]); 
    { 
    [[segue destinationViewController] TankCalculatorViewController:self]; 
    } 
} 

我have看到了幾十個答案在這裏說些的比如,「你需要投射到你的自定義類」,但是我所看到的代碼示例中沒有一個完全適用於我正在做的事情,並且我不知道該把代碼放在哪裏。我猜測它會出現在目標視圖控制器的頭文件中,然後我會將TankCalculatorViewController.h導入到我的菜單實現中,但這在黑暗中確實是一個鏡頭。我一直在這個世界上進行速成教程,甚至在用這種語言工作了幾個月之後,一些概念,當然還有術語仍在沉入其中。任何幫助都將不勝感激。

如果有幫助,我收到以下錯誤在我的if/then:

提前

感謝「的選擇TankCalculatorViewController沒有已知實例的實例方法」。

+0

** [((MyViewController *)[Segue公司destinationViewController])TankCalculatorViewController:自我]; **試試這個投它 – CoolMonster

回答

1

簡單做像

[(MyControllerClassName *)[segue destinationViewController]TankCalculatorViewController:self]]; 
+0

感謝您的答案。就像我上面問的那樣,我會在哪裏放這個代碼?在目標標題中?在我已經在菜單實施中的代碼中的某處? –

+0

您使用了prepareForSegue方法 – codercat

+0

我的確的確如此。那麼這個代碼是在那個方法裏面?我是否用'TankCalculatorViewController'替換代碼中的'MyControllerClass'? –

0

C概念我一直在做這樣的

if ([[segue identifier] isEqualToString:@"InvoiceDetail"]) 
{ 
    IVInvoiceDetailViewController *detailViewController = [segue destinationViewController]; 
    detailViewController.yourString = self.yourStringObject; 
} 
+0

感謝您的迴應。我不知道這是如何適用於我想要做的。我的目的地視圖基本上是一個計算器,但我需要其中2個獨立同時運行。我沒有使用表格視圖。 –

+0

你可以在這裏使用你的字符串,讓我更新代碼,就像這樣,你可以將當前的控制器數據傳遞給另一個控制器並管理該控制器。 – Retro

+0

我不想在控制器之間傳遞數據。上述方法引起的變化比我想象的要多。不知道哪裏yourString,yourStringObject被發現。我只是想打開我的計算器視圖的單獨版本。他們不需要共享任何數據。 –