- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设置协议(protocol)和授权。
我有一个问题,我希望将委托(delegate)设置为以前分配的对象。
我正在分配的对象需要委托(delegate)给一个协议(protocol)。这是怎么做到的?
这是我的代码。
//发送短信.h
@protocol ModalViewDelegate
- (void)didReceiveMessage:(NSString *)message;
@end
@interface SendSMS : UIViewController <UITextViewDelegate, UITextFieldDelegate> {
MessageOptions *messageOptions;
LoginPage *loginPage;
IBOutlet UITextField *phonenumber;
IBOutlet UITextView *smsBody;
IBOutlet UIScrollView *scrollview;
}
-(IBAction)LoadMessageOptions;
@end
问题是当对象被压入堆栈时。它的代表不是它自己的代表。但它之前的对象。
有什么想法吗?
更新!
好的,我已经设法将我的委托(delegate)设置为 [self.navigationController.viewControllers objectAtIndex:0]
,这是 rootviewcontroller。但是我有 3 个编译器警告,指出协议(protocol)中没有找到这些方法。它们是什么......但它编译运行和工作。
最佳答案
切勿让实例将委托(delegate)设置为自身。代表的整个想法是您不需要知道代表是谁。据我了解您的架构,它分为三个层次;
View1
是根 Controller ,它创建和推送;View2
做一些事情然后创建和推送;View3
想要将一些结果发送给相关人员。我看到了两种可能的解决方案。
解决方案 1 - 委托(delegate)
View3
声明一个委托(delegate)协议(protocol) View3Delegate
。View1
符合 View3Delegate
。View1
创建并推送 View2
时,也会将其传递给 self
以保持。View2
创建并推送 View3
时,还会设置在步骤 3 中传递的委托(delegate)。View3
想要发送它的结果时,调用委托(delegate)并高兴。解决方案 2 - 通知
对于您的情况,这可能是一个更优雅的解决方案,因为之前的解决方案有一个额外的步骤,其中 View2
需要处理一些东西,只是为了使 View1
和 View3
工作,与其真正的职责无关。
View3
声明一个名为 View3ResponseNotification
的通知。View1
观察名称为 View3ResponseNotification
的通知。View1
毫无顾虑地创建和推送 View2
。View2
毫无顾虑地创建和推送 View3
。View3
想要发送结果时,它会发布 View3ResponseNotification
通知。关于iPhone setDelegate 到之前分配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6956283/
我的代码存在语义问题。我有一个 UIWebView,并且添加了一条错误消息,因此如果没有互联网连接,则会弹出错误。 这是我的 .m 文件中 UIWebView 的编码 - (void)viewDidL
我正在尝试设置协议(protocol)和授权。 我有一个问题,我希望将委托(delegate)设置为以前分配的对象。 我正在分配的对象需要委托(delegate)给一个协议(protocol)。这是怎
我对代表如何工作有疑问。我的理解是委托(delegate)负责代表另一个对象执行某些任务。 locationManager = [[CLLocationManager alloc] init]; [l
我是这个网站的新手,也是 Xcode 的新手,我需要以下代码方面的帮助: [[AVAudioSession sharedInstance] setDelegate: self]; 给我一条警告说“
我在非常有限的情况下得到了中止,并且我正在尝试找出是什么语句或哪些语句导致了它。控制台显示: Terminating app due to uncaught exception 'NSInvalidA
我在 UIViewController 子类中使用 NSStreamDelegate 协议(protocol), 然后将 setDelegate 消息发送到 NSInputStream。 var in
我对 unsafe_unretained 和 weak 关键字有一些疑问:读起来它们是完全相同的,唯一的区别是 weak如果指向的对象被释放,则将其设置为 null。 现在我使用下面的代码,它在 [i
我正在尝试让此示例代码与 iOS 7.0 一起运行,但由于不推荐使用的代码,我遇到了一些警告。提供的示例代码 here 3年没更新了。 Here是我找到的对我有意义的解决方案,但我在示例代码中实现时遇
我有一个 UICollectionView,每个 Cells 都有一个 Product。 当我按需加载图像时,为了保持较低的前期带宽,我想在下载完成后更新 UICollectionViewCell,而
我正在尝试为我的 A 级类(class)制作一个数据库应用程序,但我无法解决这个问题;我正在通过一个 4.5 视频学习数据库技能,当我尝试对我的表使用“set delegate”时,Xcode 5 大
我正在尝试将一个 UIPanGestureController 添加到我的 UITableView,这样我就可以检测用户是手动平移还是他们只是踢了一下并观察 View 自己滚动。原因是我想在滚动速度减
适用于 iOS 的 SocketScan API 是用 Objective-C 编写的,旨在将 CHS 模式下的 SocketMobile 扫描器集成到 native 应用程序中。 启动 ScanAp
我有一个父类(super class) A,它有一个 BaseModalViewControllerDelegate协议(protocol)和 id delegate 的保留属性. 我也有 B 类,A
我有以下类(class): File_Downloadmanager.h: #import "ASINetworkQueue.h" @interface File_Downloadmanager :
当使用委托(delegate)时,我通常只告诉 UINavigationController 中的下一个 View Controller 我想将自己设置为委托(delegate)。我在我的 prepa
我在 ARC 中使用自定义委托(delegate)类时遇到了一个奇怪的问题。在 viewDidLoad 之后的 View Controller 中,我调用工具栏的 setDelegate 方法并将 V
我有下面的代码,我不知道为什么 textFieldShouldReturn方法没有被调用。当我使用 IB 创建到委托(delegate)的连接时,它可以工作,但是当以编程方式完成时,日志语句不会显示。
我正在尝试在后台线程中执行下载。为此,我创建了一个 NSOperationQueue 实例并向其添加了一个 NSInvocationOperation 实例。 operationQue
我正在 Yosemita 10.10 上的 Eclipse(不是 Xcode)中编程...我 try catch MouseMoved 事件,但它没有被调用(mouseDown、mouseDragge
我是一名优秀的程序员,十分优秀!