在新的viewController中更新NSMutableArray,将其推入堆栈

时间:2012-03-24 04:02:46

标签: iphone

我是编程和一些OOP概念的新手,我不确定做某事的“正确”方法是什么。基本上我所拥有的是我的mainViewController中的NSMutableArray。

MainViewController: UITableViewController 

@property (nonatomic, retain) NSMutableArray *data;

可以按下加号按钮将项目添加到表格,或者如果选择了现有的行,则可以编辑当前项目。我不确定构造我的DetailViewController的最佳方法是什么,因为DetailViewController可以通过加号按钮或表格行选择来呈现。我在DetailViewController中设置一个标志,说明哪个方法呈现了DetailViewController,所以在我的Save方法中,我插入对象(如果用户按下加号),或者替换当前索引处的对象(如果用户选择了一行而我将索引传递给DetailViewController)?这样做似乎有点笨拙,并且想知道什么是更好的方式来做一些简单的事情。谢谢!

1 个答案:

答案 0 :(得分:0)

您当前的MainViewController设置没问题。您要为DetailViewController做什么是定义自己的视图。鉴于您的应用程序的描述,最好将表中的每一行存储为对象:

MainViewController: UITableViewController

@property (nonatomic, retain) NSMutableArray * data ; // an entry for each row

DetailViewController: UIViewController

@property (nonatomic, retain) SomeObject * object; // Represents a single row

在展示DetailViewController时:

  1. 使用现有行填充其托管对象,以防用户 选择现有项目
  2. 使用新的托管对象填充它,该对象将添加到 完成详细编辑后的主列表
  3. 完成详细视图控制器后,刷新表视图。