Swift 如何以编程方式显示ViewController?
我目前有一个EventPage类声明为UIViewController类型,但在按下带有填充文本字段的save按钮时,会发生到空白ViewController的转换。我已将该类附加到main.storyboard中正确的ViewController。这里的问题是您正在创建一个新的Swift 如何以编程方式显示ViewController?,swift,storyboard,presentviewcontroller,Swift,Storyboard,Presentviewcontroller,我目前有一个EventPage类声明为UIViewController类型,但在按下带有填充文本字段的save按钮时,会发生到空白ViewController的转换。我已将该类附加到main.storyboard中正确的ViewController。这里的问题是您正在创建一个新的EventPage,但它不是从storyboard继承的 1. 转到情节提要中的检查器,选择视图控制器,并为视图控制器编写标识符(可以是任何内容) 在故事板ID中写入: 2. 替换 import UIKit //Ev
EventPage
,但它不是从storyboard继承的
1.
转到情节提要中的检查器,选择视图控制器,并为视图控制器编写标识符(可以是任何内容)
在故事板ID中写入:
2.
替换
import UIKit
//EventList ViewController
class EventPage: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
class EventForm: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
//IBOutlets
@IBOutlet weak var eventNameField: UITextField!
@IBOutlet weak var fromTimePicker: UIDatePicker!
@IBOutlet weak var toTimePicker: UIDatePicker!
@IBOutlet weak var colorPreview: UIView!
@IBAction func cancel(_ sender: Any) {
//empty text field
eventNameField.text = ""
}
@IBAction func save(_ sender: Any) {
if (eventNameField.hasText) {
//fix error handling
eventNameField.backgroundColor = UIColor.systemGray2
//pull data from fields
let text = eventNameField.text!
let fromTime = fromTimePicker.date
let toTime = toTimePicker.date
//initialize object
let currentEvent = EventModel(eventName: text, fromTime: fromTime, toTime: toTime, color: storedColor)
//append to data model
EventDataArray.append(currentEvent)
//transition
present(EventPage(), animated:true)
}
else {
eventNameField.backgroundColor = UIColor.systemRed
}
}
}
与
(别忘了用前面输入的id替换“MYIDENTIFIER”)
让viewController=UIStoryboard(名称:“Main”,bundle:nil)。实例化viewController(标识符为:“MYIDENTIFIER”)!事件页
//如果需要对视图控制器执行任何配置,请在此处执行。
//例如:
//viewController.label.text=“你好,世界!”
存在(viewController,动画:真)
注
如果序列图像板文件名的名称未被称为Main,请将步骤2中的“Main”替换为序列图像板文件名(不包括.Storyboard)您需要显示视图控制器的一个实例,调用初始化器,如
present(EventPage(),动画:true)
这将创建一个新的透明弹出式viewcontroller,而不是调用EventPage在EventPage上添加背景色以检查是否加载了正确的页面。请检查我的答案,我想我理解代码中的问题。无论我使用什么标识符,它给了我一个错误,标识符超出了范围。什么是超出范围?您能告诉我完整的错误吗?“在范围中找不到'eventpageidentifier'是完整的错误尝试使用带撇号的'eventpageidentifier'
present(EventPage(), animated:true)