草庐IT

Delegate

全部标签

ios - Delegate vs Unwind Segue 将数据传递给父场景

自iOS6以来,unwindsegues可用于向上导航场景层次结构。我正在尝试确定将数据传递给父ViewController的更清洁/更好/首选/更易于维护的方法。有一些问题可以从技术角度解决这个问题(例如,“如果我放松了,我还需要一个委托(delegate)吗”),但我找不到太多可以解决利弊问题的问题。选项1:使用委托(delegate)。通过将父ViewController作为遵守协议(protocol)的委托(delegate)传递来完成。child调用协议(protocol)方法返回数据。如果父级要求数据验证,则返回值/字典以允许子级处理错误。开销:父级中的协议(protoco

ios - UITextField 委托(delegate)跳转到 100% CPU 使用率并在使用键盘快捷键时崩溃

所以,我有一个UITextField子类,它是它自己的Delegate并且在使用键盘快捷键时崩溃。它在CPU上达到极限并且不会给出错误。无需将自身分配为Delegate,它就可以正常工作。当它作为Delegate分配时,即使不使用任何(可选)方法也会崩溃。自己试试:子类UITextField。-(id)initWithFrame:(CGRect)frame{self=[superinitWithFrame:frame];if(self){self.delegate=self;}returnself;}它应该会崩溃。编辑回溯:*thread#1:tid=0x3bb8d,0x39f1472

ios - UITextField 委托(delegate)跳转到 100% CPU 使用率并在使用键盘快捷键时崩溃

所以,我有一个UITextField子类,它是它自己的Delegate并且在使用键盘快捷键时崩溃。它在CPU上达到极限并且不会给出错误。无需将自身分配为Delegate,它就可以正常工作。当它作为Delegate分配时,即使不使用任何(可选)方法也会崩溃。自己试试:子类UITextField。-(id)initWithFrame:(CGRect)frame{self=[superinitWithFrame:frame];if(self){self.delegate=self;}returnself;}它应该会崩溃。编辑回溯:*thread#1:tid=0x3bb8d,0x39f1472

objective-c - 如何使用MKMapView完成加载委托(delegate),可能是 "finished displaying"委托(delegate)?

当用户在选择注释后点击保存时,我正在尝试保存mapView的缩略图。当用户尚未放大该注释时会出现问题,因此尚未加载关闭缩放级别。这是我在用户点击保存后所做的:将bool“saving”设置为true居中并放大注释(无动画)当调用mapViewDidFinishLoadingMap委托(delegate)方法时,如果保存为真:在View外创建一个UIImage,并保存它。关闭模态视图。但是,当保存图像并关闭View时,保存的结果图像实际上还没有完成加载,因为我仍然看到带有网格线的未加载map,如下所示:我的问题是,如何确保在保存此缩略图之前map已完成加载并已完成显示?

objective-c - 如何使用MKMapView完成加载委托(delegate),可能是 "finished displaying"委托(delegate)?

当用户在选择注释后点击保存时,我正在尝试保存mapView的缩略图。当用户尚未放大该注释时会出现问题,因此尚未加载关闭缩放级别。这是我在用户点击保存后所做的:将bool“saving”设置为true居中并放大注释(无动画)当调用mapViewDidFinishLoadingMap委托(delegate)方法时,如果保存为真:在View外创建一个UIImage,并保存它。关闭模态视图。但是,当保存图像并关闭View时,保存的结果图像实际上还没有完成加载,因为我仍然看到带有网格线的未加载map,如下所示:我的问题是,如何确保在保存此缩略图之前map已完成加载并已完成显示?

iphone - 带有 ARC 的 Objective-C 委托(delegate)

我正在编写一个具有委托(delegate)对象回调的类,但在使用ARC时遇到问题。例如我有符合ProtocolA的ObjectA(委托(delegate))和ObjectB,它是回调委托(delegate)的对象。我将ObjectA作为@property存储在ObjectB中。在这种情况下,哪些变量应该是强引用,哪些应该是弱引用?我需要避免将“self”从ObjectA传递到ObjectB以设置委托(delegate)导致从强指针转换为弱指针的情况。 最佳答案 为避免循环引用,请将ObjectB的委托(delegate)保存为弱引用

iphone - 带有 ARC 的 Objective-C 委托(delegate)

我正在编写一个具有委托(delegate)对象回调的类,但在使用ARC时遇到问题。例如我有符合ProtocolA的ObjectA(委托(delegate))和ObjectB,它是回调委托(delegate)的对象。我将ObjectA作为@property存储在ObjectB中。在这种情况下,哪些变量应该是强引用,哪些应该是弱引用?我需要避免将“self”从ObjectA传递到ObjectB以设置委托(delegate)导致从强指针转换为弱指针的情况。 最佳答案 为避免循环引用,请将ObjectB的委托(delegate)保存为弱引用

iphone - 如何确定哪个 UIAlertView 调用了委托(delegate)。

在alertView委托(delegate)中,有一个方法:-(void)alertView:(UIAlertView*)alertViewclickedButtonAtIndex:(NSInteger)buttonIndex;我的问题是,我怎样才能找到哪个AlertView调用了这个委托(delegate)。例如,我有几个都使用委托(delegate)的警报View,但根据调用此方法的警报View,我想为buttonIndex设置不同的操作。 最佳答案 传递到方法中的“alertView”对象是方法中使用的实际警报。最直接的方法是

iphone - 如何确定哪个 UIAlertView 调用了委托(delegate)。

在alertView委托(delegate)中,有一个方法:-(void)alertView:(UIAlertView*)alertViewclickedButtonAtIndex:(NSInteger)buttonIndex;我的问题是,我怎样才能找到哪个AlertView调用了这个委托(delegate)。例如,我有几个都使用委托(delegate)的警报View,但根据调用此方法的警报View,我想为buttonIndex设置不同的操作。 最佳答案 传递到方法中的“alertView”对象是方法中使用的实际警报。最直接的方法是

objective-c - 阻止 UIPopover 自动关闭

我想知道是否有办法阻止iPad弹出框在您触摸弹出框外的屏幕时自动消失?如果没有,是否有某种类似于“popoverDidDismiss”的方法,我可以调用它来判断弹出窗口何时被关闭? 最佳答案 是的,你可以。这是Apple文档中的内容。当由于用户在弹出窗口View外点击而关闭弹出窗口时,弹出窗口会自动通知其代理该操作。如果您提供委托(delegate),则可以使用此对象来防止弹出窗口的关闭或执行其他操作以响应关闭。popoverControllerShouldDismissPopover:委托(delegate)方法可让您控制弹出窗口