无法设置View Controller的代理

时间:2012-06-27 14:07:36

标签: iphone objective-c ios uiviewcontroller delegates

我正试图像这样推动一个视图控制器:

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 个答案:

答案 0 :(得分:2)

这是你的问题。您必须在班级中定义自己的delegate属性,并自行调用它。一定要记得制作委托协议!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

使用SampleViewControllerB的.h中的parentViewController变量说..

ParentViewController *parentObject ;

并在相同的

中使其成为自豪
@property(nonatomic,retain) ParentViewController *parentObject ;

并在.m中合成SampleViewControllerB类

@synthesize parentObject ;

现在使用你推动控制器的代码

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

希望这会对你有所帮助

答案 3 :(得分:0)

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