Я пытаюсь перемещаться между двумя диспетчерами просмотра, используя UIPickerview, поэтому я сначала научился использовать didSelectRow для изменения названия метки, а затем я попытался использовать некоторый код для перехода к другому viewcontroller, но это не сработало.Как перемещаться между двумя диспетчерами view, используя UIPickerview
код, который я использовал, был:
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet var label: UILabel!
@IBOutlet var pickerView: UIPickerView!
var food = ["hello", "hi", "hey"]
var placementAnswer = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
pickerView.delegate = self
pickerView.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
public func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
public func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return food.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return food[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
placementAnswer = row
}
@IBAction func labelChanged(sender: UIButton) {
if (placementAnswer == 0){
}else if (placementAnswer == 1){
let view2 = self.storyboard?.instantiateViewControllerWithIdentifier("view2") as! ViewController2
self.navigationController?.pushViewController(view2, animated: true)
}else if (placementAnswer == 2){
}
}
}
Является ли ваш self.navigationController действительным объектом или он равен нулю. Фактически используется навигационный контроллер. – SayeedHussain
да это остальная часть кода: @IBAction функ labelChanged (отправитель: UIButton) { если (placementAnswer == 0) { } еще если (placementAnswer == 1) { пусть View2 = self.storyboard? .instantiateViewControllerWithIdentifier ("view2") как! ? ViewController2 self.navigationController .pushViewController (view2, анимированные: правда) } еще если (placementAnswer == 2) { } } } –
Вы можете добавить точку останова в labelChanged и если это проверить на самом деле вызывается? – SayeedHussain