- 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/
我目前正在尝试基于哈希表构建字典。逻辑是:有一个名为 HashTable 的结构,其中包含以下内容: HashFunc HashFunc; PrintFunc PrintEntry; CompareF
如果我有一个指向结构/对象的指针,并且该结构/对象包含另外两个指向其他对象的指针,并且我想删除“包含这两个指针的对象而不破坏它所持有的指针”——我该怎么做这样做吗? 指向对象 A 的指针(包含指向对象
像这样的代码 package main import "fmt" type Hello struct { ID int Raw string } type World []*Hell
我有一个采用以下格式的 CSV: Module, Topic, Sub-topic 它需要能够导入到具有以下格式的 MySQL 数据库中: CREATE TABLE `modules` ( `id
通常我使用类似的东西 copy((uint8_t*)&POD, (uint8_t*)(&POD + 1 ), back_inserter(rawData)); copy((uint8_t*)&PODV
错误 : 联合只能在具有兼容列类型的表上执行。 结构(层:字符串,skyward_number:字符串,skyward_points:字符串)<> 结构(skyward_number:字符串,层:字符
我有一个指向结构的指针数组,我正在尝试使用它们进行 while 循环。我对如何准确初始化它并不完全有信心,但我一直这样做: Entry *newEntry = malloc(sizeof(Entry)
我正在学习 C,我的问题可能很愚蠢,但我很困惑。在这样的函数中: int afunction(somevariables) { if (someconditions)
我现在正在做一项编程作业,我并没有真正完全掌握链接,因为我们还没有涉及它。但是我觉得我需要它来做我想做的事情,因为数组还不够 我创建了一个结构,如下 struct node { float coef;
给定以下代码片段: #include #include #define MAX_SIZE 15 typedef struct{ int touchdowns; int intercepti
struct contact list[3]; int checknullarray() { for(int x=0;x<10;x++) { if(strlen(con
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Empty “for” loop in Facebook ajax what does AJAX call
我刚刚在反射器中浏览了一个文件,并在结构构造函数中看到了这个: this = new Binder.SyntaxNodeOrToken(); 我以前从未见过该术语。有人能解释一下这个赋值在 C# 中的
我经常使用字符串常量,例如: DICT_KEY1 = 'DICT_KEY1' DICT_KEY2 = 'DICT_KEY2' ... 很多时候我不介意实际的文字是什么,只要它们是独一无二的并且对人类读
我是 C 的新手,我不明白为什么下面的代码不起作用: typedef struct{ uint8_t a; uint8_t* b; } test_struct; test_struct
您能否制作一个行为类似于内置类之一的结构,您可以在其中直接分配值而无需调用属性? 前任: RoundedDouble count; count = 5; 而不是使用 RoundedDouble cou
这是我的代码: #include typedef struct { const char *description; float value; int age; } swag
在创建嵌套列表时,我认为 R 具有对列表元素有用的命名结构。我有一个列表列表,并希望应用包含在任何列表中的每个向量的函数。 lapply这样做但随后剥离了列表的命名结构。我该怎么办 lapply嵌套列
我正在做一个用于学习目的的个人组织者,我从来没有使用过 XML,所以我不确定我的解决方案是否是最好的。这是我附带的 XML 文件的基本结构:
我是新来的 nosql概念,所以当我开始学习时 PouchDB ,我找到了这个转换表。我的困惑是,如何PouchDB如果可以说我有多个表,是否意味着我需要创建多个数据库?因为根据我在 pouchdb
我是一名优秀的程序员,十分优秀!