2009-10-22 36 views
1

我在UINavigationController中有一个简单的UITableViewController,它使用导航栏右侧的默认编辑/完成按钮显示数组中的字符串列表。使用用户提供的字符串在UITableView中添加行的最简单方法是什么?

当按下编辑按钮时,UITableView正确动画并显示要删除的红色减号图标。按下删除按钮将从表格视图和数组中删除该行(在UITableViewControllertableView:commitEditingStyle:forRowAtIndexPath:方法中实施)。

我现在想允许用户添加一行到视图(并将字符串添加到底层数组),但我不知道如何去做。 commitEditingStyle方法有else if (editingStyle == UITableViewCellEditingStyleInsert),但我不知道如何让用户输入字符串。

我已经阅读了表格视图编程指南(更具体地说是the example of adding a table-view row),但是这似乎需要一个全新的UIViewController子类来获取用户的字符串。

难道没有简单的方法吗?

回答

2

创建另一个视图控制器可能是最简单的方法。你可以通过调用

SomeViewController* theViewController = [[SomeViewController alloc] init]; 
[self presentModalViewController: theViewController animated: YES]; 
[theViewController release]; 

当theViewController准备离开模态呈现它,它可以调用

[[self parentViewController] dismissModalViewControllerAnimated: YES]; 

OR 你可以设置为你的新视图控制器的协议,因此它可以通知你的原鉴于完成的控制器,并发送回值,如果你想要一个NSString回你可以使用

@protocol MyViewControllerDelegate 
- (void)myViewControllerDelegate: (MyViewController*)myViewController didFinishWithValue: (NSString*)theString; 
@end 

MyViewController然后将有一个德勒如果你使用你原来的视图控制器将通过该协议,当它接收到这个消息会解雇自己的模态视图的协议方法吃了财产

@interface MyViewController 
{ 
    id<MyViewControllerDelegate> delegate; 
} 
@property(nonatomic,assign) id<MyViewControllerDelegate> delegate; 
@end 

我希望有所帮助,起初看起来有点复杂,但它使收集数据非常容易。

0

你可以自己使用UIAlertView或类似的类。只需弹出模态视图来请求字符串,建立正确的回调,然后将其弹出到你的数据源中。

您也可以插入带有UITextView和“点击编辑”占位符的单元格,然后在textView回调中删除textView并显示字符串。进一步的编辑需要深入或做其他的事情

相关问题