2014-04-24 31 views
1

所以我真的很沮喪我的應用程序正在發生什麼。我在界面生成器中設置了一個segue,我正在以編程方式調用。當我用類內的方法調用segue時,它工作得很好。我有(在MainViewController.m中)Receiver(<MainViewController:0x8e34580>)沒有標識符'showCompleted'的segue iOS 7

-(void)presentCompletedFormsView{ 
    [self performSegueWithIdentifier:@"showCompleted"]; 
} 

當我從VC的類中調用它時,這種方法完全正常。但是,當我把這個方法從另一個視圖控制器(即呈現在這個主一頂我的菜單的viewController),我得到的錯誤

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<MainViewController: 0x8e34580>) has no segue with identifier 'showCompleted'' 

這是我如何從其他類調用它:

-(void)presentController{ 
    MainViewController *vc = [[MainViewController alloc] init]; 
    [vc presentCompletedFormsView]; 
} 

編輯

我已經嘗試了明顯的解決方案: - 清潔,建設 - 復位數據 - 更改賽格的名字

無濟於事。

回答

0

你有兩個問題。首先,最嚴重的是,您不能從另一個控制器調用segue,因爲當您嘗試這樣做時,MainViewController的視圖不在窗口的層次結構中,這意味着它不能顯示其他控制器。其次,你使用alloc init創建的MainViewController的實例不是他在故事板中創建的,它連接了segue。你需要重新思考你的結構,使之成爲工作。最簡單的方法是從MenuViewController連接segue,但這可能不是您想要的結構。

+0

我只是需要一些方式能夠模式地呈現一個viewcontroller到我的主viewController,使用一個不同的viewController上的按鈕,也是在主視圖控制器 – tyler53

+0

@ tyler53上呈現,抱歉,但你不能做那你需要從不同的控制器中提出它。你爲什麼不想這樣做?視覺效果將是相同的。 – rdelmar

相關問題