2015-05-21 2 views
1

Я начинаю все это ... Сказав, что я столкнулся с точкой в ​​своем приложении, где я зашел в тупик и не знаю, что делать дальше или исправить. Поэтому любые ответы будут оценены!Linking View Controllers через кнопку

Итак, в моем контроллере просмотра дома у меня есть четыре кнопки с четырьмя различными категориями. Каждая из этих категорий имеет свой собственный список вопросов, но у них есть общий список «Общий вопрос». Общий список вопросов имеет свой собственный контроллер. Когда вы нажимаете на любую из четырех кнопок, вы попадаете в общий вопрос. В нижней части этого представления у меня есть кнопка «Далее».

Цель: Настроить кнопку «Далее», чтобы перейти к одному из списка вопросов категории, исходя из того, что изначально было нажато в контроллере Home View.

Я подключил кнопки через розетку и действие в контроллере просмотра. Однако кнопка «Далее» не будет подключаться, если я управляю + перетаскиванием в контроллер просмотра. Я не уверен, где мне нужно поместить код для этого ...

Я думал, что код для кнопки «Далее», возможно, должен иметь какой-то условный оператор, но поскольку он не будет подключен, я могу «Даже до такой степени.

Помощь!

(Это то, что у меня есть) Пример кода: импорт UIKit импорт AddressBookUI импорт AddressBook Фонд импорта импорта CoreData импорт CoreGraphics импорт EventKit импорт EventKitUI импорт CoreFoundation

класс ViewController: UIViewController {

@IBOutlet var ColorButton: UIButton! 

@IBOutlet var StyleButton: UIButton! 

@IBOutlet var CutButton: UIButton! 

@IBOutlet var MakeupButton: UIButton! 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

var eventstore: EKEventStore! 
var event: EKEvent! 
weak var editViewDelegate: EKEventEditViewDelegate! 




@IBAction func ColorButtonPressed(sender: UIButton) { 

} 

@IBAction func StyleButtonPressed(sender: UIButton) { 

} 

@IBAction func HaircutButtonPressed(sender: UIButton) { 

} 

@IBAction func MakeupButtonPressed(sender: UIButton) { 

} 

}

+0

Для того, чтобы наилучшим образом ответить на ваш вопрос, вы должны включить соответствующий образец кода и скриншоты или вашей проблемы. Пожалуйста, ознакомьтесь с рекомендациями по выбору хорошего вопроса и пересмотру. http://stackoverflow.com/help/how-to-ask – Erik

+0

@ Erik, я просто попытался, но, видимо, у меня нет достаточного количества очков, чтобы опубликовать фотографию - но я просто добавил свой код –

ответ

1

Предлагаемый подход, как показано ниже в коде, для 2 контроллеров (вместо 4) для краткости. Используйте соответствующие названные segues для каждого из контроллеров «следующей обработки» из общего контроллера обработки и настройте цепочку. Вот ссылка на файл проекта: Project file

 import UIKit 



    class ViewController: UIViewController { 

    var nextVcId = 0 // defines the button that is pressed 



    @IBAction func unwindFromOtherControllers(segue: UIStoryboardSegue) { 

    // In case you want to get back to the main VC 

    } 

    @IBAction func btn2Action(sender: UIButton) { 

    nextVcId = 0 

    self.performSegueWithIdentifier("commonSegue", sender: sender) 

    } 

    @IBAction func btn1Action(sender: UIButton) { 

    nextVcId = 1 

    self.performSegueWithIdentifier("commonSegue", sender: sender) 

    } 

    override func viewDidLoad() { 

    super.viewDidLoad() 

    // Do any additional setup after loading the view, typically from a nib. 

    } 



    override func didReceiveMemoryWarning() { 

    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 

    } 



    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 



    let vc = segue.destinationViewController as! CommonViewController 

    vc.nextControllerId = nextVcId 



    } 



    } 

    import UIKit 



    class CommonViewController: UIViewController { 

    var nextControllerId = 0 



    @IBOutlet weak var StatusLabel: UILabel! 

    override func viewDidLoad() { 

    super.viewDidLoad() 

    self.StatusLabel.text = "Common" 

    commonProcessing() 

    // Do any additional setup after loading the view. 

    } 



    override func didReceiveMemoryWarning() { 

    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 

    } 



    func commonProcessing() { 

    // do your common processing 

    if nextControllerId == 0 { 

    performSegueWithIdentifier("next1Segue", sender: self) 



    } else { 

    performSegueWithIdentifier("next2Segue", sender: self) 

    } 

    } 



    } 

    import UIKit 



    class Next1ViewController: UIViewController { 



    @IBOutlet weak var statusLabel: UILabel! 

    override func viewDidLoad() { 

    super.viewDidLoad() 

    self.statusLabel.text = "Next1" 

    next1Processing() 



    // Do any additional setup after loading the view. 

    } 



    override func didReceiveMemoryWarning() { 

    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 

    } 



    func next1Processing() { 

    println("Next 1 Processing") 

    } 





    } 

    import UIKit 



    class Next2ViewController: UIViewController { 



    @IBOutlet weak var statusLabel: UILabel! 

    override func viewDidLoad() { 

    super.viewDidLoad() 

    statusLabel.text = "Next 2" 

    next2Processing() 



    // Do any additional setup after loading the view. 

    } 



    override func didReceiveMemoryWarning() { 

    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 

    } 



    func next2Processing() { 

    println("Next 2 Processing") 

    } 





    } 

обработка

Смежные вопросы