ios - UITableViewController 作为数据输入屏幕(iOS、Swift)和日历应用程序 "New Event"屏幕

标签 ios swift uitableview unwind-segue data-entry

我的应用程序跟踪事件。用户可以创建新事件或加入现有事件。事件有标题、地点、开始日期、可选的结束日期等。

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

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

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

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

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

我是否需要在不使用 UITableViewController 的情况下重新设计 UI?对于这种情况来说,这似乎是完美的 UI。

iOS Calendar App New Event screen My app data entry screen

最佳答案

您可以使用委托(delegate)将数据从表xib获取到您想要的任何 Controller ,希望这有帮助

1.将此方法添加到 xib 的 View Controller 文件顶部

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. 创建一个要将所有数据提取到 View Controller 中的函数。

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

关于ios - UITableViewController 作为数据输入屏幕(iOS、Swift)和日历应用程序 "New Event"屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57248907/

相关文章:

swift - 是否可以向 Swift 协议(protocol)一致性扩展添加类型约束?

ios - 在标题部分做与单元格相同的动画

ios - UITextView 和单元格根据 textview 的内容动态更新高度?

IOS - UITableViewCell 重叠 UITableViewCell

ios - 什么是最大 CFBundleVersion

android - 将 iOS Controller 复制到 Android 中

Navigation Controller 的 iOS Swift Coordinator 模式和后退按钮

ios - 具有大量 UIButton 的 UIScrollView

ios - 为什么调用 setenv ("OS_ACTIVITY_DT_MODE", "disable", 1) 不会影响日志记录?

ios - 在 UITableViewCell 中修改 UIView 外观的正确方法是什么?