2014-02-14 70 views
0

我想用我的應用程序打開某些圖像。我已經設置了URL方案,一切都很好,我得到這個方法:如何處理 - (BOOL)應用程序:(UIApplication *)應用程序openURL:(NSURL *)故事板應用程序中的url?

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url 
    sourceApplication:(NSString *)source annotation:(id)annotation 

但我怎麼在這之後訪問我的視圖控制器,並告訴它在我的圖像視圖中打開圖像?

我沒有指向故事板或指向我的視圖控制器的指針,以及如何防止以常規方式進一步加載應用程序?

例如,我在啓動時打開某個圖像,如果我被告知從另一個應用程序打開另一個文件,我不想這樣做。

回答

1

使用self.window從應用程序委託來訪問根視圖控制器。然後從那裏導航,比如子視圖和類的實例。

更詳細的答案: 假設根視圖控制器是一個MasterViewController,它是UIViewController的一個子類。 在那個MasterViewController中你有一個UIView,並且是一個UIImageView。

使用的UIWindow獲取根視圖控制器,從AppDelegate中:

MasterViewController *master = (MasterViewController *)[self.window rootViewController]); 

因爲你很聰明,你設置你的故事板,因此具有的UIImageView在MasterViewController一個屬性,我們稱之爲ImageView的。 所以這很容易,只是這樣做:

UIImageView *imageView = [master imageView]; 
[imageView setImage:[UIImage imageWithContentsOfFile:[url path]]]; 

就是這樣的。 您將需要導入您使用的所有類,例如MasterViewController。

相關問題