【问题标题】:UITableViewController as data entry screen (iOS, Swift) a la Calendar app "New Event" screenUITableViewController 作为数据输入屏幕(iOS,Swift)一个日历应用程序“新事件”屏幕
【发布时间】:2019-07-29 07:21:10
【问题描述】:

我的应用会跟踪事件。用户可以创建新活动或加入现有活动。事件有标题、位置、开始日期、可选的结束日期等。

我有一个UITableViewController 来显示事件列表,这是一个带有一个自定义单元格的标准。

我创建事件的数据输入屏幕(参见图 2)也是 UITableViewController,类似于 Apple iOS 日历应用程序的“新事件”屏幕(参见图 1)。我创建了多个原型单元(一个带有UITextField,另一个带有UIDatePicker,另一个带有UICollectionView,等等)。这样的屏幕工作正常,但是...

我正在尝试创建一个像 this tutorial from Apple 中的“创建一个展开转场”部分中的展开转场。第 7 步 - 没问题。第 8 步 - 哎呀!

在教程中,有一些简单的控件来收集数据、创建“膳食”、将其添加到膳食数组中并返回膳食列表。但是,我有一个 UITableViewController。

我不知道如何收集数据以创建我的事件、将其添加到数组等。

我是否需要在不使用UITableViewController 的情况下重新设计我的用户界面?它似乎是这种场景的完美 UI。

【问题讨论】:

  • 如果您还没有使用Eureka,我建议您使用。它让生活变得更简单。
  • 哇,这是一些看起来很时髦的代码。快吗?
  • 是的。运算符重载使这成为可能。
  • 酷。但是......我正在看他的例子,一个叫做“Native iOS Event Form”的例子......有一个取消按钮,但没有一个保存按钮。所以,我还是不知道怎么把表格中的数据取出来保存。
  • 在 README 文件中有专门的部分:github.com/xmartlabs/Eureka#getting-row-values

标签: ios swift uitableview unwind-segue data-entry


【解决方案1】:

您可以使用 Delegates 从 Table xib 获取数据到您想要的任何控制器,希望这会有所帮助

1.将此方法添加到您的 xib 的 viewcontroller 文件之上

protocol ViewModelDelegate
{
    func sendValue(from PassData: String?)

}

class XibViewController: UITableViewCell {

    var controller:HomeViewController()

    override func awakeFromNib() {
        super.awakeFromNib()
        controller.delegate = self

    }

    //call this method on any button action or save 
    controller.sendValue(from PassData:String?)




}
  1. 创建一个函数,将所有数据提取到视图控制器中。

        class:HomeViewController:UITableViewController
        {
        override func viewDidLoad()
        {
    
         super.viewDidLoad()
    
        }
    
        func sendValue(from PassData:String?)
        {
           //code to get the data from picker or textfield
    
        }   
        }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    相关资源
    最近更新 更多