【问题标题】:Sending "Edit" to tableview (separate views)将“编辑”发送到 tableview(单独的视图)
【发布时间】:2011-06-24 13:04:34
【问题描述】:

我有一种情况,我有一个 ViewController 包含一个编辑按钮,而另一个 View(它是独立的)包含我的 tableview。

我目前正在以编程方式添加编辑按钮(就像您使用单个视图一样)。但是,正如预期的那样,当您点击编辑按钮时,它会更改为“取消”,但表格并未进入编辑模式(所有正常方法都已启用并包含我将用于单个视图的代码)。

因此,我想知道如何将“消息”从视图控制器中的编辑按钮发送到表视图(如上所述是单独的)。我需要设置代理吗?或者有什么特殊的方法可以调用吗?

我已经在谷歌上搜索了很多,但如果有人能帮助我指出正确的方向,我将不胜感激。

【问题讨论】:

    标签: objective-c ios uitableview uiviewcontroller


    【解决方案1】:

    我将把拥有编辑按钮的控制器称为 VC1,将拥有(代表)表视图的控制器称为 VC2。另外,请阅读Delegation。它不是 iOS 开发中的可选主题。

    在 VC2 中,声明一个名为 -setTableIsEditing:(BOOL)isEditing 的方法,并实现它以简单地在表格视图上设置 isEditing 属性,如下所示:

    - (void)setTableIsEditing:(BOOL)isEditing {
      self.myTableView.isEditing = isEditing;
    }
    

    然后在 VC1 的按钮 touchUpInside 委托实现中,更新 ivar bool 以跟踪编辑模式,并在 VC2 上使用正确的参数调用该方法:

    - (IBAction)editButtonPressed {
      _isEditingTable = !_isEditingTable;
      [self.myVC2Instance setTableIsEditing:_isEditingTable];
    }
    

    【讨论】:

    • 谢谢 :) 我在代表团中读得很好,只是不确定在这种特殊情况下该怎么做,感谢您的帮助。多亏了这一切,这一切都正常了。
    【解决方案2】:

    委托可以工作,或者您可以从表格视图订阅的按钮触摸方法发送 NSNotification。然后在那里为每个单元格调用 [UITableViewCell setEditing:YES animated:YES] 。

    【讨论】:

      【解决方案3】:

      使用可以使用

       - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
       {
                // Return NO if you do not want the specified item to be editable.
         return YES;
       }
      

      然后实施

                     // Override to support editing the table view.
      - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
      
      // You can use NSUserDefaults for sending information to the controllers in another view
        //and you can manipulate them.
      
      }
      

      【讨论】:

      • 这一点帮助都没有。您不是在说方法的去向,也不是在解决编辑按钮属于与 tableview 不同的视图控制器这一事实。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多