- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大约一个月前,我和妻子想出了一个关于 iPhone 应用程序的好主意,所以我开始从用户的角度思考该应用程序如何工作,大约一周前我第一次打开了 XCode并开始发展。
在我过于专注于应用程序的编写之前,我想确保我脑子里清楚一些关键概念,特别是与架构相关的概念。
仅供引用,作为一个原则,我想尝试以编程方式创建尽可能多的应用程序(特别是 UI),以便我彻底了解正在发生的事情。稍后我可能会使用 IB 作为加速 UI 开发的工具(目前适用,因为我使用的是 TableView,而不是静态 View )。
View Controller
因此,UINavigationController 通常不会被子类化,而是作为 AppDelegate 中的属性创建,并且是 MainWindow.xib 的主要“ subview ”。
UINavigationController 控制一堆 View ,通常由 Root View Controller 启动。
导航 Controller 通常在当前/顶 View Controller 中作为 [self navigationcontroller] 进行引用和发送消息,它是 UIViewController 父类的只读属性。
核心数据
托管对象上下文是访问模型中数据的主要控制点,但通常不直接使用它,而是使用获取请求返回数据对象的数组、集合或字典,然后由 View Controller 来呈现和操作数据。
上下文作为应用程序委托(delegate)中的属性创建,然后在启动时传递到 Root View Controller , Root View Controller 本身将其传递到堆栈中的后续 View ,然后告诉导航 Controller 更改 View (例如例如,当点击单元格时)。
所以我花了一周的时间才到达这里,我可以创建我的模型,用数据填充它并将其显示在 TableView 上,但是当您想要编辑数据时,我无法在模态视图上找到太多内容,具体如何设计模态视图(如果与普通 View 有任何具体差异)?
此外,我不完全确定数据的整个“绑定(bind)”以查看对象的作用以及如何以编程方式执行此操作?
非常感谢您提前提出的意见和建议。
最佳答案
当使用presentModalViewController:animated 显示 View 时,该 View 将变为模态视图。您可以在呈现模态视图之前传递要编辑的模型。
DetailViewController dvc = ...;
dvc.model = model;
dvc.delegate = self; // if you want to use a delegate pattern.
[self presentModalViewController:dvc animated:YES];
由于您要编辑的模型在模态视图 Controller 中可用,因此您可以在 viewDidLoad 中设置值。 iOS 平台上没有可用的数据绑定(bind),这意味着您必须手动更新 View 和模型。
- (void)viewDidLoad {
[super viewDidLoad];
self.someTextField.text = self.model.someText;
}
使用模态视图时需要考虑的是,您必须提供一种方法来关闭它。例如。顶部有一个带有“取消”和“保存”按钮的导航栏。关闭模态视图 Controller 是使用以下方法完成的:
[self dismissModalViewControllerAnimated:YES];
可以从模态视图 Controller 中关闭模态视图,但这也意味着这样的模态 Controller 必须能够保存有问题的模型。我个人会使用对呈现 Controller 的回调,让它知道是保存还是取消以及处理模态视图的关闭。这可以使用委托(delegate)模式来完成。因此,当用户点击“保存”时,您可以更新模型,然后通知委托(delegate)人。
- (IBAction)save:(id)sender {
self.model.someText = self.someTextField.text;
[self.delegate detailViewControllerDidSave:self];
}
在演示者中有一个类似的方法:
-(void)detailViewControllerDidSave:(DetailViewController *)controller {
// save the model
[self dismissModalViewControllerAnimated:YES];
}
关于iphone - 有关 iPhone 应用程序结构的问题 - 核心数据、 View 、模态视图等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088630/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!