non*_*uma 3 iphone objective-c ios
我正在尝试使用协议使用segue传回数据.我正在回答这个问题:如何在撤消Segue时将信息传回iOS?
所以我已经做了:
PageScrollViewController.h
@protocol MyDataDelegate <NSObject, UIPageViewControllerDelegate>
- (void)recieveData:(NSString *)theData;
@end
Run Code Online (Sandbox Code Playgroud)
我还添加了属性:
@property (nonatomic,weak) id<MyDataDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
ContainerViewController.h
#import "PageScrollViewController.h"
@interface ContainerViewController : UIViewController <MyDataDelegate>
//...
Run Code Online (Sandbox Code Playgroud)
ContainerViewController.m
- (void)recieveData:(NSString *)theData {
//Do something with data here
}
Run Code Online (Sandbox Code Playgroud)
在这里我被困住了:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//Get a handle on the view controller about be presented
PageScrollViewController *secondViewController = segue.destinationViewController;
if ([PageScrollViewController isKindOfClass:[PageScrollViewController class]]) {
PageScrollViewController.delegate = self;
}
}
Run Code Online (Sandbox Code Playgroud)
该行 PageScrollViewController.delegate = self;给出了一个错误:在'PageScrollViewController'类型的对象上找不到属性'委托',但我确实将它添加为属性并合成它...
您正在尝试在类型的对象上调用实例方法([PageScrollViewController setDelegate:])Class(在本例中PageScrollViewController).
试试这个:
更换
PageScrollViewController *secondViewController = segue.destinationViewController;
if ([PageScrollViewController isKindOfClass:[PageScrollViewController class]]) {
PageScrollViewController.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)
同
PageScrollViewController *secondViewController = segue.destinationViewController;
if ([secondViewController isKindOfClass:[PageScrollViewController class]]) {
secondViewController.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |