【问题标题】:Stuck when passing data back with segue使用 segue 传回数据时卡住
【发布时间】:2013-04-30 12:58:05
【问题描述】:

我正在尝试使用协议通过 segue 将数据传回。我正在关注这个答案:How to Pass information Back in iOS when reversing a Segue?

所以我已经做了:

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; 行给出错误:在“PageScrollViewController”类型的对象上找不到属性“delegate”,但我确实将它添加为属性并合成了它...

【问题讨论】:

  • 你有#imported PageScrollViewController 吗?
  • 是的,在ContainerViewController的头文件中

标签: iphone ios objective-c


【解决方案1】:

您正在尝试对 Class 类型的对象(在本例中为 PageScrollViewController)调用 实例方法 ([PageScrollViewController setDelegate:])。

试试这个:

替换

PageScrollViewController *secondViewController = segue.destinationViewController;

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

PageScrollViewController *secondViewController = segue.destinationViewController;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多