分段对象时传递的属性



我有一个对象,我想在两个MVC之间分割。第一个MVC中的属性是与对象一起分割的,还是只是方法。IE:如果我有一个值为5的int属性,然后执行一个segue传递对象。我的新MVC可以访问这个属性和值5吗?还是它只能访问传递的对象方法?

属性不会在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"];
    }
}

否。遗憾的是,房地产本身并没有神奇地通过分段。

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

最新更新