1

我正在尝试像这样推送视图控制器:

SampleViewControllerB *svcb = [self.storyboard instantiateViewControllerWithIdentifier:@"viewB"];
svcb.delegate = self;
[self.navigationController pushViewController:svcb animated:YES];

如果我删除该 svcb.delegate = self;行,它可以正常编译并正常工作。但是,如果我尝试添加它,它将无法编译并给出错误

Property 'delegate' not found on object of type 'SampleViewControllerB *'

有人知道如何解决这个问题吗?提前致谢!

4

4 回答 4

2

这是你的问题。你必须delegate在你的类中定义你自己的属性,并自己调用它。请务必记住也要制定委托协议!

于 2012-06-27T14:14:36.100 回答
1

UIViewControler没有委托属性,如果您需要向您添加委托,SampleViewControllerB则需要显式定义它

于 2012-06-27T14:09:28.193 回答
1

在 SampleViewControllerB 的 .h 中制作 parentViewController 变量说..

ParentViewController *parentObject ;

并使其具有相同的属性

@property(nonatomic,retain) ParentViewController *parentObject ;

并在 SampleViewControllerB 类的 .m 中合成

@synthesize parentObject ;

现在使用您推送控制器的代码

SampleViewControllerB *svcb = [self.storyboard instantiateViewControllerWithIdentifier:@"viewB"];
svcb.parentObject = self;
[self.navigationController pushViewController:svcb animated:YES];

希望对你有帮助

于 2012-06-27T14:13:35.050 回答
0

对于 Delegate 属性,您需要在 SampleViewControllerB 类的协议中添加委托方法。

于 2012-06-27T14:10:29.787 回答