草庐IT

ios - 协议(protocol)和委托(delegate)到底是什么,它们在 IOS 中是如何使用的?

我对委托(delegate)和协议(protocol)的概念真的很困惑。它们等同于Java中的接口(interface)和适配器类吗?它们是如何工作的?到目前为止,我读过的所有资源都没有帮助。“委托(delegate)是一种简单而强大的模式,其中程序中的一个对象委托(delegate)另一个对象或与另一个对象协作。委托(delegate)对象保留对另一个对象(委托(delegate))的引用,并在适当的时间发送消息对它。”我不知道这是什么意思。有人可以解释一下它们是什么并举一个简单的例子吗?提前致谢!编辑:据我所知,1)委托(delegate)实现协议(protocol)(接口(int

ios - Storyboard - 设置委托(delegate)

在使用Storyboard之前,我可以通过将socket拖到类中来设置委托(delegate)和数据源。对于Storyboard,我无法将导出拖到另一个ViewController;没有目的地会回应它。如果我点击一个ViewController对象,我可以在底部看到类所有者,但是一旦我选择另一个包含导出的ViewController,旧的选择就消失了,所以我无法连接这两个.这是Apple的说法,我们应该只以编程方式连接它们吗? 最佳答案 正确。在您的prepareForSegue:sender:方法中设置委托(delegate)或其

ios - 从应用委托(delegate)获取当前 View Controller

我是ios的新手。我需要从应用程序委托(delegate)中了解当前的ViewController。我对此一无所知,也不知道要实现它。我正在使用这段代码来实现它,但它返回空值。我点击了这个链接-Getcurrentviewcontrollerfromtheappdelegate(modalispossible)需要帮助。 最佳答案 这是我用来查找用户最有可能与之交互的当前ViewController的方法:UIViewController+Utils.h#import@interfaceUIViewController(Utils)

objective-c - 如何从应用程序委托(delegate)获取 iOS 应用程序中的事件 View ?

为了引用,我如何从应用程序委托(delegate)中获取当前事件View(用户当前正在查看的主视图)? 最佳答案 UIWindow*window=[[UIApplicationsharedApplication]keyWindow];UIView*topView=window.rootViewController.view; 关于objective-c-如何从应用程序委托(delegate)获取iOS应用程序中的事件View?,我们在StackOverflow上找到一个类似的问题:

ios - 使用 UITableViewController 比使用实现 tableview 委托(delegate)和数据源方法的 UIViewController 有什么优势吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion在Xcode中,当我创建一个新的ViewController来包含一个tableview时,我有两个选择创建一个新的UITableViewController创建一个新的UIViewController来实现UITableViewDelegate和UITableViewDataSource协议(protocol)假设我正确地实现了协议(protocol)的所有必需和可选方法,使用UITab

objective-c - 如何继承 UIScrollView 并将委托(delegate)属性设为私有(private)

这是我想要实现的:我想子类化UIScrollView以获得额外的功能。这个子类应该能够对滚动使用react,所以我必须将委托(delegate)属性设置为self以接收如下事件:-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{...}另一方面,其他类也应该仍然能够接收这些事件,就像它们正在使用基本的UIScrollView类一样。所以我对如何解决这个问题有不同的想法,但所有这些都不完全让我满意:(我的主要方法是..像这样使用自己的委托(delegate)属性:@interfaceMySubclass:UIScr

ios - 使用 Storyboard时如何从应用程序委托(delegate)中获取可见的 viewController?

我有一些viewControllers,但我不使用NavigationController。如何在应用程序委托(delegate)方法(例如applicationWillResignActive)中获取可见ViewController?我知道如何从NSNotification做到这一点,但我认为这是错误的方式。 最佳答案 这应该为你做:-(void)applicationWillResignActive:(UIApplication*)application{UIViewController*vc=[selfvisibleViewC

iphone - 声明委托(delegate) ivar 时出现 ARC 错误

我正在使用ARC(不,这不是NDA)。我在我的界面中声明了我的ivariditemDelegate;然后我声明属性:@property(nonatomic,weak)iditemDelegate;(由于ARC而使用weak而不是assign)在我的实现文件中,我简单地综合了它:@synthesizeitemDelegate;但是,我收到错误:"Existingivar'ItemDelegate'for_weakproperty'itemDelegate'mustbe_weak".谁知道怎么回事?感谢您的帮助。ARC-自动引用计数 最佳答案

ios - 拦截子类中的 Objective-C 委托(delegate)消息

我有一个UIScrollView的子类,我需要在其中对滚动行为做出内部响应。然而,viewcontroller仍然需要监听滚动委托(delegate)回调,所以我不能在我的组件中直接窃取委托(delegate)。有没有办法保留名为“delegate”的属性并只听取沿它发送的消息,或者以某种方式在内部劫持delegate属性并在运行一些代码后向外转发消息? 最佳答案 为避免手动覆盖所有委托(delegate)方法,您可以使用消息转发。我只是使用中间代理类实现了同样的事情,如下所示:MessageInterceptor.h@interf

ios - iOS8 委托(delegate)方法中的 nil 对象 - 自定义键盘

我正在构建自定义键盘我正在我的InputViewController中实现以下委托(delegate)方法。但我总是得到_textInput=nil_-(void)textWillChange:(id)textInput-(void)textDidChange:(id)textInput-(void)selectionWillChange:(id)textInput-(void)selectionDidChange:(id)textInput有人知道怎么解决吗?nil是有原因的吗?我需要自己实现一些东西吗? 最佳答案 好问题。但似乎