0

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

4

2 回答 2

0

不。遗憾的是,属性并没有神奇地通过 segues 自己(还)。

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

于 2012-07-22T04:42:04.747 回答
0

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

另一种方法是为目标 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"];
    }
}
于 2012-07-22T04:42:11.860 回答