2014-12-15 4 views
0

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

Вот мой новый код:

func showAlertController(){ 
    let tilte = "My Medication" 
    let message = NSLocalizedString("Go through Medication guide?", comment: "") 
    let cancelButtonTitle = NSLocalizedString("Dismiss", comment: "") 
    let otherButtonTitle = NSLocalizedString("Ok", comment: "") 

    let alertController = UIAlertController(title: title, message: message, preferredStyle: .Alert) 



    let cancelAction = UIAlertAction(title: cancelButtonTitle, style: .Cancel){ action in 
     NSLog("User said no")} 

    let otherAction = UIAlertAction(title: otherButtonTitle, style: .Default){action in 
     // I know I need to put something in here. 
     let appointment = Appointment() 
     self.presentViewController(appointment, animated:true, completion:nil) 
    } 

    alertController.addAction(cancelAction) 
    alertController.addAction(otherAction) 

    self.presentViewController(alertController, animated: true, completion: nil) 

} 

Однако теперь я получаю ошибку поговорку: тему 1: EXC_BAD_INSTRUCTION (код = EXC_l1386_INVOP, субкодовый = 0x0)

+1

Когда вы «не знаете», как это сделать, возможно, вам стоит прочитать документацию. Я бы предложил «Руководство по программированию на просмотр контроллера для iOS» в качестве хорошего места для запуска. – rdelmar

+0

Я смотрю, что сейчас, спасибо! –

+0

Эта ошибка ничего не говорит, вы должны обновить ее всеми трассировками стека. – Sandeep

ответ

1

Добавить presentViewController внутри UIAlertAction закрытия для " Ok ", это означает, что кнопка нажата, и вы делаете свои вещи для нажатия кнопки внутри блока.

class MainViewController: UIViewController { 
    ... 
    ... 
    func showAlertController(){ 
     let tilte = "My Medication" 
     let message = NSLocalizedString("Go through Medication guide?", comment: "") 
     let cancelButtonTitle = NSLocalizedString("Dismiss", comment: "") 
     let otherButtonTitle = NSLocalizedString("Ok", comment: "") 

     let alertController = UIAlertController(title: title, message: message, preferredStyle: .Alert) 



     let cancelAction = UIAlertAction(title: cancelButtonTitle, style: .Cancel){ action in 
      NSLog("User said no")} 

     let otherAction = UIAlertAction(title: otherButtonTitle, style: .Default){action in 
      // I know I need to put something in here. 
      let appointmentViewController = AppointmentViewController() 
      self.presentViewController(appointmentViewController, animated:true, completion:nil)  
     } 

     alertController.addAction(cancelAction) 
     alertController.addAction(otherAction) 

     self.presentViewController(alertController, animated: true, completion: nil) 

    } 
    ... 
    ... 
} 

class AppointmentViewController: UIViewController { 

} 
+0

Ах, правильно! Но теперь все это просто показывает один и тот же экран снова и снова. Я хочу, чтобы он менял экран, как мне это сделать? –

+0

Ну, ха-ха, извините, я сделал небольшую ошибку там, позвольте мне изменить его. – Sandeep

+0

Ах, крутой брат! Но у меня есть некоторые проблемы с тем, чтобы получить изменения, которые вы видите ... Я хочу изменить его на экран Appointment.swift, и теперь я получаю сообщение об ошибке –

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