【发布时间】:2017-03-03 20:26:00
【问题描述】:
我的视图层次结构如下所示:
类型为 UIViewController
的 ElevethViewController
容器视图
嵌入在容器视图中的 UITableViewController 类型的 ManagedTableEleventhViewController
ManagedTableEleventhViewController 包含 4 个静态单元格,每个单元格包含 1 个文本字段和一个空静态单元格。
class ManagedTableEleventhViewController: UITableViewController,UITextFieldDelegate {
var hasText:Bool!
@IBOutlet weak var fullName: UITextField!
@IBOutlet weak var flatNumber: UITextField!
@IBOutlet weak var streetAddress: UITextField!
@IBOutlet weak var phoneNumber: UITextField!
//checkValue takes ELViewController parameter so that segue can be
//performed when button is touched in EleventhViewController
func checkValue(ELViewController:EleventhViewController) {
//loop through the textfields and check if they have text
for case let textField as UITextField in viewController.view.subviews {
//print is not executed meaning loop is not performed
print("some text")
if textField.text == "" {
self.hasText = false
textField.layer.borderColor = UIColor.red.cgColor
} else {
print("true value in for loop")
self.hasText = true
performSegue(withIdentifier: "elevethToTwelveth", sender: ELViewController)
}
}//end of for loop
}
class EleventhViewController: UIViewController {
var nextButtonOutlet:UIButton!
override func viewDidLoad() {
super.viewDidLoad()
//create button programmatically
var button = UIButton(type: UIButtonType.custom) as UIButton
button = UIButton(frame: CGRect(x: 0, y: 637, width: 375, height: 50))
button.titleLabel?.textColor = UIColor.white
button.backgroundColor = UIColor(colorLiteralRed: 117/255, green: 232/255, blue: 0, alpha: 1)
button.setTitle("Next", for: .normal)
button.addTarget(self, action: #selector(EleventhViewController.nextButton), for: .touchUpInside)
self.view.addSubview(button)
self.nextButtonOutlet = button
}
func nextButton(sender: UIButton) {
//create instance of tableView
let managedTable = ManagedTableEleventhViewController()
managedTable.checkValue(viewController: self)
} //end of EleventhViewController class
【问题讨论】:
-
什么是viewController?您粘贴的代码已损坏。
-
@Magnas 视图控制器是 EleventhViewController 。我在本教程之后创建了视图层次结构youtube.com/watch?v=zAWO9rldyUE
-
在您发布的代码中,ManagedTableEleventhViewController 类没有任何方法。这只是你的“粘贴”决定还是课堂上真的没有方法?
-
@Magnas 我想尽量减少粘贴的代码量,使其更具可读性。我已经使用编程按钮更新了我的代码,每次触摸它都会调用
func nextButton()。 -
@Magnas 我误读了你的问题。在 ManagedTableEleventhViewControlle 中有
func checkValue(ELViewController:EleventhViewController)方法。现在,每次触摸 nextButtonOutlet 时都会在 EleventhViewController 中调用 checkValue 方法。
标签: swift uitableview