[英]IOS Push ViewController from AppDelegate.h
我正在使用一個StoryBoard,其中包含各種ViewController和一個TableViewController,尤其是其中一個ImageViewController僅顯示圖像。 我的DetailViewController包含一個UIWebView,在這里我有一個鏈接,當按下該按鈕時,我試圖加載我的ImageViewController。
鏈接是
在AppDelegate.m中,我通過處理handleOpenURL獲得文件名值。
我是IOS的新手,正在努力從AppDelegate.m中的handleOpenURL方法加載ImageViewController。
我的代碼是:
NSString *param = [keyValueParm objectForKey:@"filename"];
NSLog(@"Param: %@",param);
ImageViewController *imageViewController =[[ImageViewController alloc]init];
imageViewController.imageString = param;
UIViewController *root = self.window.rootViewController;
[root.navigationController pushViewController:imageViewController animated:YES];
return true;
{
NSString *param = [keyValueParm objectForKey:@"filename"]; NSLog(@"Param: %@",param); ImageViewController *imageViewController =[[ImageViewController alloc]init]; imageViewController.imageString = param; UIViewController *root = self.window.rootViewController; [root.navigationController pushViewController:imageViewController animated:YES]; return true;
}
目前沒有任何反應。
您不應該實現application:handleOpenURL:
方法。 不僅不建議使用它,還要求應用程序委托允許在瀏覽器中打開URL。
您要做的是在DetailViewController
實現UIWebViewControllerDelegate
協議。 具體來說,您應該實現– webView:shouldStartLoadWithRequest:navigationType:
方法。 在里面:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
[ImageViewController *imageViewController =[[ImageViewController alloc]init];
imageViewController.imageString = param;
[root.navigationController pushViewController:imageViewController animated:YES];
return YES;
}
在這種方法中, UIWebView
實例向其委托人請求打開URL的權限。
希望能幫助到你
請注意,此方法已廢棄: http : //developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html
另外,請確保您的應用程序委托application:didFinishLaunchingWithOptions:方法返回YES,或者如果您的委托實現了applicationDidFinishLaunching:,則不會調用您的代碼:
如果委托從其application:didFinishLaunchingWithOptions:方法的實現返回否,則不調用此方法。 如果您的應用程序實現了applicationDidFinishLaunching:方法而不是application:didFinishLaunchingWithOptions :,則在初始化應用程序后將調用此方法以打開指定的URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.