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