3

プロトコルを使用してセグエでデータを返そうとしています。私はこの答えに従っています:セグエを元に戻すときにiOSに情報を戻す方法は?

だから私はすでにやったこと:

PageScrollViewController.h

@protocol MyDataDelegate <NSObject, UIPageViewControllerDelegate>

- (void)recieveData:(NSString *)theData;

@end

また、次のプロパティも追加しました。

@property (nonatomic,weak) id<MyDataDelegate> delegate;

ContainerViewController.h

#import "PageScrollViewController.h"

@interface ContainerViewController : UIViewController <MyDataDelegate>

//...

ContainerViewController.m

- (void)recieveData:(NSString *)theData {

    //Do something with data here
}

そしてここで私は立ち往生しています:

- (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;
    }
}

この行 PageScrollViewController.delegate = self;でエラーが発生します: プロパティ 'delegate' がタイプ 'PageScrollViewController' のオブジェクトに見つかりませんでしたが、プロパティとして追加して合成しました...

4

1 に答える 1

5

型(この場合は)のオブジェクトでインスタンス メソッド( )を呼び出そうとしています。[PageScrollViewController setDelegate:]ClassPageScrollViewController

これを試して:

交換

PageScrollViewController *secondViewController = segue.destinationViewController;

  if ([PageScrollViewController isKindOfClass:[PageScrollViewController class]]) {
    PageScrollViewController.delegate = self;
  }

PageScrollViewController *secondViewController = segue.destinationViewController;

  if ([secondViewController isKindOfClass:[PageScrollViewController class]]) {
    secondViewController.delegate = self;
  }
于 2013-04-30T13:05:42.173 に答える