2012-07-22 74 views
0

我有一个对象,我想在两个MVC之间延续。第一个MVC中的属性是否与对象一起被捕获,还是仅仅是方法? IE:如果我有一个值为5的int属性,然后执行传递对象的segue。我的新MVC是否可以访问这个属性和值5?还是只能访问传入的对象方法?当你继承对象时属性是否被传递?

回答

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"]; 
    } 
} 
0

不幸的是,物业并不神奇地通过自己的节点(还)。

你应该做的是在视图控制器中覆盖prepareForSegue:sender:。然后您可以使用[segue destinationViewController]访问目标视图控制器。一旦你有了对视图控制器的引用,你可以设置它的属性。