2012-12-06 41 views
0

我想知道當我使用故事板時,是否仍然可以使用方法presentViewController:(UIViewController *) animated:(BOOL) completion:^(void)completion來呈現視圖控制器?當使用StoryBoard時,我允許使用presentViewController呈現視圖控制器:animated:completion:?

還是我必須使用segues?

在我的項目有可能被任何從孔應用其他的VC呈現一個VC,所以如果我會用塞格斯,還有會像20個塞格斯這個相同的VC。

謝謝。

+0

那麼,我使用故事板,但我確實有一些獨立的類與他們自己的.xib文件。我介紹那些使用這種方法。如果這就是你的意思,那麼是的。 – Josiah

回答

4

這應該仍然有效。在調用該方法之前,您可以使用instantiateViewControllerWithIdentifier:從其故事板定義創建視圖控制器。

+0

非常感謝你。我正在嘗試'[myClass alloc] init]'而且它不工作。這就是爲什麼我首先提出這個問題的原因。這解決了我的問題,謝謝 – pedros

1

你基本上可以給你想由其他UIViewController呈現的UIViewController分配一個StoryBoard ID。

StoryBoard ID

然後,你必須導入UIViewController子類中,你希望它出現了,比如我在這裏的BaseViewController和InfoViewController中的UIViewController的.h文件的前頭我想提出:

#import <UIKit/UIKit.h> 
#import "InfoViewController.h" 

@interface BaseViewController : UIViewController 
{ 
    InfoViewController *InfoViewController; 
} 

@property (nonatomic, strong) InfoViewController *InfoViewController; 

然後在.m文件中,您必須合成它並鍵入執行代碼。我在這裏使用一個按鈕來顯示InfoViewController的IBAction,名爲ShowInfoAction

@synthesize InfoViewController = _InfoViewController; 

    - (IBAction)ShowInfoAction:(id)sender { 
     InfoViewController *InfoVC = [self.storyboard instantiateViewControllerWithIdentifier:@"GiveItAnIDHere"]; 
     [self presentViewController:InfoVC animated:YES completion:NULL]; 
    } 
+0

順便說一句,你會得到一個警告,如果你沒有通過無論是SEGUE鏈接的UIViewController或ID分配給它,故事板可的身影,它是*系列的一部分*。如果您使用StoryBoards,則不應該使用.xib文件。那麼你可以,但不建議。 – Ashoor

相關問題