如何使用用户输入向表视图添加行?

时间:2015-03-03 23:53:19

标签: ios objective-c iphone uitableview

我在我的第一个iPhone应用程序的最后阶段,我不能为我的生活让这个工作。我有一个表格视图,我希望有一个"添加"进入另一个控制器的按钮(模态,我认为),用户可以在其中输入字符串并单击"完成"。这应该将用户带回到表视图,该视图已更新为包含底部的最新行。 (行的数据存储在NSUserDefaults的数组中。)

我遵循本指南:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html#//apple_ref/doc/uid/TP40007451-CH10-SW1

我看到了添加按钮。但我不明白下一部分。

- (void)addItem:sender {
if (itemInputController == nil) {
    itemInputController = [[ItemInputController alloc] init];
}
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:itemInputController];
[[self navigationController] presentModalViewController:navigationController animated:YES];
}

什么是 ItemInputController ,这是我需要自己定义的东西吗?文档没有说明如何。它也没有说明如何设计文本输入视图。我猜这是以编程方式完成的,但是如何在Add按钮和这个新的模态视图之间设置segue。

到目前为止,我到目前为止所尝试的内容(也使用其他在线教程和SO答案)都失败了。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

ItemInputController在其代码中的某个示例应用程序中是一些自定义类。 它可能是UIViewController的子类。它包含对用户有用的东西..一些UI或一些文本域......我们不知道。

无论如何,那个输入控制器然后被包装在UINavigationController中,它纯粹为它提供了一个可以容纳按钮的顶部导航栏。这一步不是强制性的。这只是出于设计考虑(要真正拥有该条,并且能够取消并在该条中添加按钮。)

您需要做的是

1)创建自己的SomethingViewController

2)放置你想放在那里的任何东西,包括取消和添加导航栏按钮

3)然后以与代码示例中相同的方式呈现它。

Basicaly您的自定义视图控制器将用作添加一些数据的平台。当用户按下Add时,您应该将该数据保留在模型层中,然后当您返回到表视图时,您将重新加载表视图的数据。