将 UIViewController 类文件导入 AppDelegate

Posted

技术标签:

【中文标题】将 UIViewController 类文件导入 AppDelegate【英文标题】:Importing UIViewController-classed file to AppDelegate 【发布时间】:2013-09-13 20:33:52 【问题描述】:

我正在使用一个 GitHub 项目,它允许我使用 .xib 文件 (GitHub link 1) 创建一个弹出窗口。我还在使用来自 GitHub 的另一个项目,它创建了一个侧边菜单 (GitHub link 2)。

我希望在我点击其中一个按钮时显示一个弹出窗口。但是,second one is set up up 的方式需要我将代码添加到应用程序委托中,不幸的是,我遇到了这个问题。

这是我用于弹出窗口的代码:

SampleViewController *sampleViewController = [[SampleViewController alloc] initWithNibName:@"SampleViewController" bundle:nil];
    [self presentViewController:samplePopupViewController animated:YES completion:nil];

在最后一行代码中,我收到以下错误消息:

No visible @interface for 'AppDelegate' declares the selector 'presentViewController:animated:completion:'

我该如何解决这个问题?

【问题讨论】:

您为什么要这样做?你想达到什么目的?在这种情况下你不能使用“self”,因为 self 是应用程序委托,而 presentViewController:animated:completion: 是 UIViewController 的一个方法。导入视图控制器不会改变这一点。 我很抱歉。我认为如果我把它做得足够通用,我就能得到我的答案,但同时,也可以帮助其他遇到类似问题的人。看来我写得太笼统了。我已经更新了这个问题。 在不知道这两个链接的情况下很难判断您在做什么,但一般来说,您必须从当前屏幕上的任何控制器视图呈现控制器。因此,您需要弄清楚它是什么控制器,并从中进行演示。 啊。我懂了。好吧;我想我必须弄清楚如何将第二个项目的代码路由到 ViewController 中。还是谢谢你。 【参考方案1】:

是的。如果您导入视图控制器的标头,那么您可以在应用程序委托中创建并显示该视图控制器的实例。

为什么不试试呢?

【讨论】:

我试过了,但我收到一条错误消息,上面写着No visible @interface for 'AppDelegate' declares the selector 'presentViewController:animated:completion:'。事实上,示例代码就是我正在使用的代码,但它似乎不想工作。

以上是关于将 UIViewController 类文件导入 AppDelegate的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIView XIB“导入”到 UIViewController XIB?

将 UITextFieldDelegate 传递给 UIViewController 帮助器类

将数据从 UITableViewCell 可可触摸类传输到 UIViewController 类

将搜索栏添加到 UIViewController 类

为啥我们将 UIViewController 传递给 UINavigationController 类?

当我没有 UIViewController 时如何链接 viewDidLoad