我有一个设置视图控制器,我有一个segue和那很好,用户已经进入设置VC并修改后设置如何将这些设置为主视图控制器。有没有可能的'其他方式'赛格?设置视图控制器到主视图控制器信息传输
0
A
回答
0
必须使用委托协议,这个答案是非常适合你的问题
0
可以使用开卷SEGUE。查看以下教程以了解有关放松继续的信息。
http://chrisrisner.com/Unwinding-with-iOS-and-Storyboards
What are Unwind segues for and how do you use them?
还可以使用NSNotificationcenter将数据从一个视图控制器转移到另一个。
在设置的情况下,NSUserdefaults是执行此操作的首选方法。
0
这里有几个选项,基本上你需要一个策略来将数据从你的设置视图控制器传送到你的主视图控制器。我宁愿独立执行segue。 您可以:
- 使用NSUserDefaults来保留已经选择的设置。 Class Reference。
- 使用委托技术将结果传达给应用程序中的另一个对象。
- 使用通知将事件/更改传播到您应用中的一组对象。
- 如果这些变化过于复杂而无法保存到用户默认值,请使用您自己的模型来保持更改的持久性。
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);
相关问题
- 1. 主视图控制器 - >详细视图控制器通信
- 2. 从当前视图控制器的子视图控制器导航到详细信息视图控制器
- 3. 设置根视图控制器的模态视图控制器
- 4. 视图控制器设置
- 5. 传递从根视图控制器消息到另一个视图控制器
- 6. 从子视图控制器呈现主视图控制器
- 7. 跨视图控制器传输图像
- 8. 从子视图控制器到容器视图控制器的通信
- 9. 传递视图控制器
- 10. 故事板视图控制器到编码视图控制器
- 11. 将视图控制器从根到视图控制器(SplitView)
- 12. 更大的视图控制器内的翻转视图控制器将翻转主视图控制器
- 13. 在拆分视图控制器中调整主视图控制器和详细视图控制器的大小?
- 14. 在拆分视图控制器:调用详细视图控制器方法从主视图控制器
- 15. 从主视图控制器发送Firebase数据到详细视图控制器
- 16. 将信息传递到新视图控制器
- 17. 将对象从视图传递到控制器或控制器到控制器
- 18. 从子视图控制器设置父视图控制器类的属性值?
- 19. 从根视图控制器传递NSMutableArray到推视图控制器
- 20. 从表格视图控制器传递值到视图控制器
- 21. 将数据从视图控制器传递到另一个视图控制器
- 22. 将数据从表格视图控制器传递到视图控制器
- 23. 从表视图控制器争论到主控制器细节控制器
- 24. 视图控制器
- 25. 视图控制器
- 26. UIWebView到视图控制器?
- 27. 从视图到控制器
- 28. 从控制器到视图
- 29. 发送消息从父视图控制器到容器视图
- 30. 设置视图控制器属性pushViewController
特别是对于这种情况下(设置),也许这将是更适当的持久化数据到'NSUserDefaults',而不是仅仅将它们传递控制器之间。 – Alladinian