我一直在努力将我的一个应用程序从“shared appdelegate”进程中移开,尽管它的使用量很大,但似乎不受欢迎。我一直在尝试为我想做的事情设置协议方法,但运气为零。我的问题是,您甚至可以说一个视图控制器将委托请求发送到多个类吗?从即时通讯发现它似乎并不像你可以。这没有任何意义,因为我认为这就是 mvc 的委托和协议的全部意义所在。现在澄清一下,我知道您可以让一个视图控制器充当多个其他视图控制器的代表。但这不是我要问的。举个简单的例子,假设你有苹果翻转实用程序模板。“完成”按钮只是调用 mainvc 的委托方法来解除它。
@interface NewClass : NSObject <TheOtherDelegate>
它有一个委托方法......
- (void)doSomething
{
NSLog(@"The Delegate did something...");
}
我们可以在 Flipsideviewcontroller 上有一个按钮,我们想调用该委托方法,但仍然保持“完成”按钮调用 mainviewcontroller 上的委托方法以解除它吗?
话虽这么说,我整理了一个快速项目,只是想看看它是否可行,但它不可行。我遇到了一个“答案”,说你必须先实例化你想成为代表的类......
NewClass *myDelegate = [NewClass alloc] init]
[fillInMethodHere setDelegate:myDelegate];
不知道为什么它得到了正确的答案检查,因为不用说它不起作用。有什么我想念的吗?我搜索了 ib 以查看某处是否有一些“代表”连接,但我找不到任何东西。
在旁注中,当我在我的工作项目中工作时,我阅读了关于删除#import
和添加@class
. 再次,这打破了各种各样的事情。奇怪的是,在这样做之前,我到目前为止的工作和建设都很好。当我删除新的@class
并取消注释时#import
。xcode 突然给了我一个错误“找不到协议减速...”但是,它在几秒钟前就起作用了。我将不得不删除协议代码并重新添加它才能再次工作。非常明星。
任何帮助,将不胜感激。iv 在文档、谷歌、堆栈等中读到的所有内容都说应该有效,而不是在实际项目中。