Iphone handleOpenURL方法。演示modalviewcontroller并传递url信息

Iphone handleOpenURL方法。演示modalviewcontroller并传递url信息,iphone,xcode,delegates,appdelegate,Iphone,Xcode,Delegates,Appdelegate,我的应用程序委托中的handleOpenURL方法有一些问题。我有一个应该正常显示的rootviewcontroller,但是当在我的应用程序中打开一个文件时,我需要handleOpenURL方法来显示一个新的viewcontroller并发送url信息。问题是我无法从我的应用程序代理中显示模式视图控制器。另外,当我尝试调用rootviewcontroller中的一个方法来显示我得到的modalviewcontroller时 Warning: Attempt to present ... wh

我的应用程序委托中的handleOpenURL方法有一些问题。我有一个应该正常显示的rootviewcontroller,但是当在我的应用程序中打开一个文件时,我需要handleOpenURL方法来显示一个新的viewcontroller并发送url信息。问题是我无法从我的应用程序代理中显示模式视图控制器。另外,当我尝试调用rootviewcontroller中的一个方法来显示我得到的modalviewcontroller时

 Warning: Attempt to present ... whose view is not in the window hierarchy!
所以,我想我只是在寻找一个解决方案,它将提供一个新的模态视图控制器,并将url信息传递给该类。这是应用程序委托方法

- (void)handleOpenURL:(NSURL *)url {

}

感谢您的帮助

在您的RootViewController中,创建一个appDelegate实例,如下所示

 YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication]delegate];
    appDelegate.rootViewControllerInstance = self;
然后主题

[appDelegate handleOpenURL:yourURL];
还要创建一个callBackFunction,例如:

-(void)回调:(NSUrl*)url

现在在appDelegate类中创建
RootViewController的
属性

appDelegate
中,按此方式指定您的函数

- (void)handleOpenURL:(NSURL *)url {
[rootViewControllerInstance callBackUrl:url];
}

在RootViewController中,创建appDelegate的实例,如下所示

 YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication]delegate];
    appDelegate.rootViewControllerInstance = self;
然后主题

[appDelegate handleOpenURL:yourURL];
还要创建一个callBackFunction,例如:

-(void)回调:(NSUrl*)url

现在在appDelegate类中创建
RootViewController的
属性

appDelegate
中,按此方式指定您的函数

- (void)handleOpenURL:(NSURL *)url {
[rootViewControllerInstance callBackUrl:url];
}
  • 在情节提要中,通过添加新的视图控制器并将其类设置为当前视图控制器,添加要显示的视图控制器
  • 控件从根视图控制器拖动到新控制器,这将创建一个
    segue
  • 为序列的
    标识符
    设置一个名称,并将其自定义为以模式显示
  • 在根视图控制器中,调用
    [self-PerformsgueWithIdentifier:@“MySegueIdentifier”]
  • 在根视图控制器的
    prepareForSegue
    中设置任何属性,例如URL
  • 在情节提要中,通过添加新的视图控制器并将其类设置为当前视图控制器,添加要显示的视图控制器
  • 控件从根视图控制器拖动到新控制器,这将创建一个
    segue
  • 为序列的
    标识符
    设置一个名称,并将其自定义为以模式显示
  • 在根视图控制器中,调用
    [self-PerformsgueWithIdentifier:@“MySegueIdentifier”]
  • 在根视图控制器的
    prepareForSegue
    中设置任何属性,例如URL

  • 你想创建自定义URL方案吗?你想创建自定义URL方案吗?我可以看到应该发生什么,但我不能完全让它工作。有人找到一个更长的例子吗?我能看到应该发生什么,但我不能完全让它工作。有没有人找到一个更长的例子?