2014-07-09 85 views
0

我想从一个视图(数字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]; 
} 
+0

“但是这是一个错误。”您能否详细描述错误? – dasblinkenlight

+0

我无法调用母亲方法。我忘记在“.h”文件中声明方法是否有问题? – DKM

+0

让我们转到您的MVC。视图使用的是什么模型?我想我们可以在这里创建一个类,作为一个数据源,并且可能使用NSNotifications来通知第一个视图第二个视图已经关闭,或者在这里创建一个自定义的委托。 – TheM00s3

回答