在我正在编写的当前App中,我有一个UITextField,其中包含一个链接。所以我想调用一个新的View Controller而不是Safari。我可以在Safari中打开它,但我不希望用户离开我的应用程序。我做了一些研究,并且正在做以下事情。
我创建了一个名为MyApplication的新文件,并将以下内容放在.m文件中以覆盖openURL
#import "MyApplication.h"
@implementation MyApplication
- (BOOL)openURL:(NSURL *)url
{
if ([self handleOpenURL:url])
return YES;
else
return [super openURL:url];
}
- (BOOL)handleOpenURL:(NSURL *)url
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"71"];
[self presentViewController:vc animated:YES completion:nil];
return YES;
}
@end
在View Controller下的属性检查器中,我调用了标题71.我还调用了故事板ID和恢复ID 71以确保!在main.m文件中,我已经用@“MyApplication”替换了第三个nil,如你所见。
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, @"MyApplication", NSStringFromClass([AppDelegate class]));
}
}
但是,App无法构建,因为在方法handleOpenURL中我在行上出现错误
[self presentViewController:vc animated:YES completion:nil];
它说'MyApplication'没有可见的@interface声明了选择器'presentViewController:animated:completion:'我看到的所有示例和问题都使用了不推荐使用的方法presentModal但是Xcode告诉我使用这个更新的方法presentViewController。那么有谁知道我做错了什么?我一定是想念一些东西,但我不能为我的生活找到答案。提前感谢对此事的任何见解!!!
答案 0 :(得分:0)
可能你错过了:
#import <UIKit/UIKit.h>