iPhone故事板编辑表格视图

mar*_*lee 9 iphone xcode storyboard ios

我一直在尝试在Xcode中学习新的Storyboard功能,并且在尝试将UITableView设置为编辑模式时遇到了问题.

到目前为止,我的故事板看起来像这样:

NavigationController - > UIViewController(具有tableview属性的子类)

我在视图控制器场景中添加了导航项和条形按钮项,因此我看到了一个编辑按钮.它没有自动执行任何操作,因此我尝试将其选择器链接到tableview委托的setEditing方法.这确实使它进入了编辑模式.但是,编辑按钮没有更改为"完成"按钮,因此无法退出编辑模式.

我是否必须为"完成"按钮创建另一个导航项?如何连接它以便它在正确的时间出现并正常工作?

yas*_*sin 27

我认为,使用Storyboard,实现工作编辑/完成按钮的唯一方法(当然,最简单的方法)是使用以下代码:

- (void)viewDidLoad
{
[super viewDidLoad];
...
//set the edit button
self.navigationItem.leftBarButtonItem = self.editButtonItem;
...
Run Code Online (Sandbox Code Playgroud)

如果您为项目选择"主 - 详细应用程序"模板,这就是Apple自己实现的解决方案.

可能Storyboard仍然不完美,希望在下一版本中它将从Apple改进......


小智 13

我刚开始使用Storyboard,所以我也想使用Storyboard添加我的编辑按钮.花时间学习如何使用新工具但发现需要一卷胶带来修补孔是很烦人的.

您可以让它工作,但需要添加自定义按钮.在"属性"检查器中,确保"标识符"为"自定义",标题为"编辑".

然后在你的.m中添加这样的东西

- (IBAction)setEditMode:(UIBarButtonItem *)sender {
    if (self.editing) {
        sender.title = @"Edit";
        [super setEditing:NO animated:YES];
    } else {
        sender.title = @"Done";
        [super setEditing:YES animated:YES];
    } 
}
Run Code Online (Sandbox Code Playgroud)

让自定义编辑按钮调用setEditMode方法.

只能希望将来修复Storyboard编辑器中的Edit按钮的实现.


小智 6

总结一下:

返回的Button UIViewController.editButtonItem是一个特殊的切换按钮,具有特殊的行为,- (void)setEditing:(BOOL)editing animated:(BOOL)animated如果按下则会调用.

返回的Button UINavigationController.editButtonItem是一个简单的Button,只标有"编辑".

故事板允许选择后者.


jus*_*tin 5

如果您使用导航控制器推送到视图控制器,只需设置self.navigationItem.rightBarButtonItem = self.editButtonItem;,这将默认编辑按钮在右侧.如果导航栏不可见,请致电self.navigationController.navigationBarHidden = NO;.那些将在viewDidLoad方法中调用,或类似的东西.然后,为了使tableView响应编辑调用,请使用以下方法:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [tableView setEditing:editing animated:animated];
}
Run Code Online (Sandbox Code Playgroud)

那应该做你想做的事.如果您有任何问题,请说明,我们可以缩小细节范围