2015-04-23 55 views
0

我正在做應用程序內瀏覽器,以在應用程序中使用來自任何viewController的Safari瀏覽器打開鏈接。 這是在AppDelegate.m如何在呈現UINavigationController時將屬性傳遞給根視圖控制器?

-(void)openExternalRef:(NSString *)ref 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    CSDBrowser* browser = [storyboard instantiateViewControllerWithIdentifier:@"CSDBrowser"]; 
    browser.urlString = ref; 
    browser.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self.window makeKeyAndVisible]; 
    UINavigationController* navi = [storyboard instantiateViewControllerWithIdentifier:@"CSDBrowserNavi"]; 

    [self.window.rootViewController presentViewController:navi animated:YES completion:nil]; 
    [self.window.rootViewController.navigationController pushViewController:browser animated:YES]; 

} 

我需要一個變量「裁判」傳遞給我的視圖 - 控制與鏈路啓動瀏覽器的代碼,但我需要先啓動導航控制器,任何想法?

+0

我不明白你的問題。如果你不知道如何訪問你的viewController來描述你的控制器層次結構和'self.window.rootViewController'。 –

+0

我需要從我的應用程序的任何窗口訪問瀏覽器ViewController,但我需要它與導航欄。因此,爲了顯示我的導航欄,我需要首先啓動導航控制器。這種方式我不能將我的財產傳遞給browserVC –

回答

0
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 

[self.window makeKeyAndVisible]; 
UINavigationController* navi = [storyboard instantiateViewControllerWithIdentifier:@"CSDBrowserNavi"]; 

CSDBrowser* browser = [navi viewControllers][0]; 
browser.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

browser.urlString = ref; 

[self.window.rootViewController presentViewController:navi animated:YES completion:nil]; 
相關問題