关于这个故事板测试项目,我有 2 个问题。我是 Xcode 的新手,我找不到这个问题的解决方案。
视图控制器 A 是根视图控制器。视图 B 和视图 C 分别从它扩展而来。表视图从视图 C 扩展。视图 B 有 2 个按钮 - 到表视图和视图 B。(我忘记在视图 B 上添加 textField,并从 B 到 A)
1) Button To Table View 推动 Table View。表格单元格包含一个字符串。按下单元格,视图返回到视图控制器 C,并且该字符串显示在文本字段中。
问题 1:如果我使用表格视图中的模态 segue 来查看 C 文本字段将使用方法 prepareForSegue 进行更新,但我将丢失视图 C 上的导航栏。
问题2:如果我使用从表视图到视图C的push segue,视图C上的后退按钮不会指向视图A,它将指向表视图。
解决方案?点击文本框选择它,然后按返回按钮更新视图C。但是如何实现呢?
还是有更好的解决方案?
2)我想按视图C上的按钮转到视图B。如果我使用push segue,View B Back按钮将指向视图C。如果我使用模态推送,视图B会丢失导航栏。
我可以以某种方式将推送转至视图 B,它的后退按钮指向视图 A?
[编辑]
为了在视图控制器之间传递数据,我使用了 NSUserDefaults。事实证明,这是在视图之间传递简单数据(字符串、数字等)的非常有效的方式
热将它用于 MODAL segue?在所需的 tableViewController 添加
-(void)tableview:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//define user defaults
NSUserDefaults *defaults = [NSUserDefaults standardDefaults];
NSString *testString = @"test";
[defaults setObject:testString] forKey:@"test1"];
[defaults synchronize];
//dismiss ViewController
[self dismissViewControllerAnimated:YES completion:nil]; }
如果您希望使用 push segue 来关闭视图控制器并跳过导航序列(从序列中删除视图)替换
[self dismissViewControllerAnimated:YES completion:nil];
和
[self.navigationController popViewControllerAnimated:YES];