当您对一个对象进行预测时是否会传递属性?

时间:2012-07-22 01:50:56

标签: objective-c xcode properties segue

我有一个对象,我想在两个MVC之间进行切换。第一个MVC中的属性是否与对象一起被激活,或者只是方法。 IE:如果我有一个值为5的int属性,然后执行传递该对象的segue。我的新MVC是否可以访问此属性和值5?或者它只能访问传递的对象方法?

2 个答案:

答案 0 :(得分:0)

没有。可悲的是,属性并没有神奇地通过自己(但是)传递segues。

您应该做的是在视图控制器中覆盖prepareForSegue:sender:。然后,您可以使用[segue destinationViewController]访问目标视图控制器。获得视图控制器的引用后,可以设置其属性。

答案 1 :(得分:0)

不在segue中的目标viewController上传递或设置属性。如果希望目标viewController使用对象(类的实例)或一些简单变量,则必须在目标viewController类中定义该属性,然后在prepareForSegue:中设置它。例如,在下面的代码位中,目标viewController有一个属性'sectionToShow',并且正在调用该属性的setter。

另一种方法是为目标viewController定义委托并以相同的方式设置它。然后目标viewController可以调用方法并访问委托的属性。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

    NSString* identifier = segue.identifier;

    if([identifier isEqualToString:@"userGuideSegue_home"]){
        UserGuideViewController* vc = segue.destinationViewController;
        [vc setSectonToShow:@"Home Screen"];
    }
}