如何将应用程序委托添加回 mainwindow.xib
Posted
技术标签:
【中文标题】如何将应用程序委托添加回 mainwindow.xib【英文标题】:How to add app delegate back to mainwindow.xib 【发布时间】:2012-02-09 06:40:48 【问题描述】:简短回答:
从对象库中拖动一个对象并将其类设置为委托。
详情见下方答案。
我不小心从 mainwindow.xib 中删除了应用程序委托。我到处寻找,但仍然找不到将其添加回来的方法。我试图在网上找到它,但仍然没有结果。谁能帮我解决它?谢谢。
我的项目
别人的项目
Main.m
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
@autoreleasepool
return UIApplicationMain(argc, argv, nil, nil);
【问题讨论】:
【参考方案1】:通常您的 AppDelegate 不会在任何 .xib 文件中被引用。相反,您的 main.m 将实例化 AppDelegate 的一个实例(通过 UIApplicationMain
函数),然后您的 AppDelegate 将实例化一个或多个视图控制器,这反过来将取消归档一些基于 .xib 文件的视图。
main.m
中您的应用程序的入口点,您的 AppDelegate 被实例化并启动您的应用程序,应该如下所示(如果您的应用程序委托具有不同的类名,请使用它而不是 AppDelegate
:
int main(int argc, char *argv[])
@autoreleasepool
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
...但是如果你的应用程序有一个 MainWindow.xib,上面的都是不正确的,你确实想在 MainWindow.xib 中创建你的 AppDelegate 的实例。为此,只需将通用对象从对象库中拖到 IB 的对象区域中,然后转到身份检查器并将类字段设置为您的 App Delegate 的类名。 (您可以从 View/Utilities 访问 Object Library 和 Identity Inspector。
【讨论】:
谢谢@yuji,那我该怎么做才能恢复呢? 我很困惑——由于您的应用程序委托“缺席”,您无法做什么具体是什么?我说“缺席”是因为它通常不会被 mainwindow.xib 首先引用。 感谢您的快速回复,我上传了一张图片。我的问题是如何将 appdelegate 添加到 nib。 您不应该这样做:如果这样做,您将创建AppDelegate
类的新实例,而不是连接到应用程序的实际 AppDelegate 实例。如果你真的想在视图控制器中引用你的AppDelegate
,这个问题:***.com/questions/2710062/… 会告诉你 1)如何以编程方式进行,2)为什么这样做不是很好的 MVC。
感谢@yuji,实际上我将其更改为 nil 因为我尝试关注其他项目。现在我把它改回来,在 mainwindow.xib 中仍然看不到 PushBizAppDelegate。由于我没有 appdelegate,因此无法将其类设置为 MyAppDelegate,也无法将其链接到文件所有者。以上是关于如何将应用程序委托添加回 mainwindow.xib的主要内容,如果未能解决你的问题,请参考以下文章
如何将现成的项目(使用应用程序委托创建和启动但没有 xib、nib)添加到另一个项目