我想从一个视图(数字2)传递一些对象以查看数字1.视图1触发器视图2以及之前在“prepareForSeque”中我将“self”传递给第二个视图并将其存储在变量“委托”中。一段时间后,我想回传新创建的对象来查看1,我试图实现它,但我有一个错误,该方法不可见的接口。如何将创建的对象传递给母视图触发方法?将信息传递给母亲视图
当我声明@property someObject并合成它时,它使用委托工作正常。有没有另外的选择,还是我不得不使用委托?
代码:
- (IBAction)saveAndClose:(id)sender {
KwejkModel *mod = [[KwejkModel alloc] init];
((ViewController *)self.delegate).model = mod;
}
它工作正常,但有另一种选择触发方法不使用属性?像这样:
[((ViewController *)self.delegate) someMethod];
但是这是一个错误。
这里是我的代码:
VIEW 1
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"addItemSeque"]) {
ScrollViewViewController *destViewController = segue.destinationViewController;
destViewController.delegate = self;
}
}
-(void) addNewPosition:(KwejkModel *)newKwejk
{
//for testing only this
[modelArray count];
}
VIEW 2:
- (IBAction)saveAndClose:(id)sender {
KwejkModel *mod = [[KwejkModel alloc] init];
// ((ViewController *)self.delegate).model = mod;
//it crashes here with error:-[NSPlaceholderString initWithString:]: nil argument' but it sees method from VIEW 1
[self.delegate addNewPosition:mod];
}
“但是这是一个错误。”您能否详细描述错误? – dasblinkenlight
我无法调用母亲方法。我忘记在“.h”文件中声明方法是否有问题? – DKM
让我们转到您的MVC。视图使用的是什么模型?我想我们可以在这里创建一个类,作为一个数据源,并且可能使用NSNotifications来通知第一个视图第二个视图已经关闭,或者在这里创建一个自定义的委托。 – TheM00s3