我有一个设置视图控制器,我有一个segue for,很好,在用户进入VC设置并修改设置后如何将这些设置输出到主视图控制器。是否存在可能的“其他方式”?
答案 0 :(得分:0)
您必须使用委托协议,此答案非常适合您的问题
答案 1 :(得分:0)
您可以使用Unwind segue。请查看以下教程以了解unwind segue。
http://chrisrisner.com/Unwinding-with-iOS-and-Storyboards
What are Unwind segues for and how do you use them?
您还可以使用NSNotificationcenter将数据从视图控制器传输到另一个控制器。
如果设置,NSUserdefaults是首选方法。
答案 2 :(得分:0)
这里有几个选项,基本上你需要一个策略来将数据从设置视图控制器传递到主视图控制器。我更喜欢独立于执行的segue。 你可以:
答案 3 :(得分:0)
您也可以尝试使用块。像这样在settingsViewController上放置一个属性:
@property (nonatomic, strong) void(^completionBlock)(NSDictionary *dataYouWantPassedBack);
然后在您的MainViewController中,在-prepareForSegue中设置当你关闭settingsViewController时你想要对数据发生什么
-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"mySegueName"])
{
SettingsViewController *dest = [segue destinationViewController];
dest.completionBlock = ^(NSDictionary *dataYouWantPassedBack){
//do anything you want with the data in the dictionary here
};
}
}
在设置视图控制器中,您可以将数据放入要传回的字典中,然后在关闭视图控制器之前调用完成块并传递字典。
NSDictionary *example = [NSDictionary dictionaryWithObjectsAndKeys: obj, key, nil];
if (self.completionBlock)
self.completionBlock(example);