簡體   English   中英

iOS從AppDelegate.h推送ViewController

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM