【问题标题】:iphone, How should I allow editing of a row item on a selection / search view?iphone,我应该如何允许在选择/搜索视图上编辑行项目?
【发布时间】:2011-11-06 20:15:17
【问题描述】:

我有一个屏幕,允许用户一次添加多个类别。他们可以搜索所有类别并选择一个类别。我还添加了向右滑动删除功能。

但是,我真的不确定如何允许行项目被重命名/编辑?

目前滑动删除并不明显,可能会错过。

我缺乏房地产,我不知道如何提供编辑/重命名功能。

我知道这个问题可以在 UI 堆栈网站上提出。但我认为这与功能和可以使用的框架更相关,设计人员不会知道有哪些功能可用。

【问题讨论】:

    标签: iphone objective-c xcode cocoa-touch


    【解决方案1】:

    我会添加一个:

    UITableViewCellAccessoryDetailDisclosureButton
    

    推送一个新控制器以允许对其进行编辑或删除。

    已编辑:

    有一个 TableView Delegate 可以检测何时点击了附件:

    - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
    

    【讨论】:

    • 谢谢,但是他们将如何选择一行
    • 也许我不完全理解你的问题:) - 但是如果你添加一个 UITableViewCellAccessoryDe​​tailDisclosureButton,在 TableView 上有一个委托: - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:( NSIndexPath *)indexPath
    • 此时,您点击一行并点击选择。哪个选择行。如果我有一个披露按钮,这将不允许选择行。
    • 通过点击附件,您可以获得被点击的索引。此索引应对应于填充表的 NSArray 或 NSMutableArray。它也是与该行被点击时相同的索引。如果你有 NSArray 或 NSMutableArray 的索引,就可以获取对象的引用。
    • 问题不是检测到选择,而是当用户点击一行时它什么都不做,除了突出显示单元格。然后他们可以单击导航栏上的选择。如果我添加一个披露按钮以允许重命名,我将无法允许选择一行。
    【解决方案2】:

    对应用中的任何其他 tableView 执行完全相同的操作。

    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    
      if (tableView == self.searchDisplayController.searchResultsTableView) {
        //delete rows etc.
      }
    }
    

    关于重命名,再想一想,实际上没有人需要重命名搜索结果中的行。它们取自原始数据源,并没有改变,那么重命名它们有什么意义呢?

    【讨论】:

    • 谢谢,所以你说的设置中可能有一个维护屏幕?我在想,在邮件应用程序中,当您单击编辑时,它会在底部显示一些选项,但我不知道这将如何用于重命名,因为您可以选择多行。
    猜你喜欢
    • 1970-01-01
    • 2011-09-18
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多