使用segue传回数据时卡住了

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'类型的对象上找不到属性'委托',但我确实将它添加为属性并合成它...

sam*_*m-w 5

您正在尝试在类型的对象上调用实例方法([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)