iOS 6,StroryBoards:在模态转场后更新主场景上的 UITextView
Posted
技术标签:
【中文标题】iOS 6,StroryBoards:在模态转场后更新主场景上的 UITextView【英文标题】:iOS 6, StroryBoards: Updating UITextView on main scene after modal segue 【发布时间】:2013-06-18 15:56:17 【问题描述】:从子场景返回后,我尝试更新父场景上的 UITextView 文本,用户可以在其中输入导航返回后应显示的内容。
父场景:
模态转场 ->
孩子
导航返回后,不会调用 viewWillAppear 或 viewDidLoad 方法,因此此 UITextView 控制器不会获得更新数据的提要。解决这个问题的最聪明的方法是什么。提前谢谢你。
编辑:
-(void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
NSLog(@"Calling viewWillAppear");
// SQLite access methods and other bla bla bla
从子场景返回后,viewWillAppear 不会被调用 -> NSLog 不会打印出来。
【问题讨论】:
为什么 viewWillAppear 没有被调用?我相信它应该是。可以贴代码吗? 因为这是模态序列,我相信这些不涉及 UINavigation。 【参考方案1】:像您所描述的那样的模态转场在技术上一直在屏幕上,因此永远不会调用 viewDidLoad
和 viewWillAppear
。
从模态视图控制器获取数据到主视图控制器的最佳方式是使用委托。通过委托方法的参数(在您自己的自定义协议中定义)发回数据。在您的委托方法的实现中,执行您所有的 SQLite 调用,并调用 setNeedsDisplay
,并以您想要的任何方式存储模态视图控制器传递的值。
【讨论】:
以上是关于iOS 6,StroryBoards:在模态转场后更新主场景上的 UITextView的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 如何在 Unwind Segue 中控制动画类型?
iOS Modal Segue 丢弃源 ViewController?
iOS使用UIViewControllerAnimatedTransitioning自定义presentViewController动画