В моей раскадровке модальный переход выводит пользователя на экран входа (с главного экрана). Затем я добавил PUSH segue с экрана регистрации на следующий экран (Create Profile), который встроен в контроллер навигации (экран «Создать профиль» - тот, в котором включена кнопка «тест»).SWIFT: Push segue приводит к появлению модального сегмента
переход к Регистрации экрана работает отлично. Однако, когда пользователь вводит свои учетные данные и клики «Зарегистрироваться», он выводит их на правильный экран, но использует модальный переход по сравнению с нажатием клавиши. Я понятия не имею, почему это происходит.
Вот мой код контроллера регистрации. Любая помощь будет принята с благодарностью!
import UIKit
import Parse
class SignInViewController: UIViewController {
@IBOutlet weak var usernameField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBAction func signInButton(sender: AnyObject) {
PFUser.logInWithUsernameInBackground(usernameField.text!, password:passwordField.text!) {
(user: PFUser?, error: NSError?) -> Void in
if user != nil {
//self.performSegueWithIdentifier("loginUser", sender: self)
self.usernameField.text = ""
self.passwordField.text = ""
} else {
if let errorString = error?.userInfo["error"] as? String {
self.displayAlert("Login Failed", message: errorString)
}
}
}
}
@IBAction func signUpButton(sender: AnyObject) {
if usernameField.text == "" || passwordField.text == "" {
self.displayAlert("Missing Field(s)", message: "Username and password are required")
} else {
let user = PFUser()
user.username = usernameField.text
user.password = passwordField.text
user.signUpInBackgroundWithBlock {
(succeded, error) -> Void in
if let error = error {
if let errorString = error.userInfo["error"] as? String {
self.displayAlert("Sign Up Failed", message: errorString)
}
} else {
self.performSegueWithIdentifier("SignUpToCreate", sender: self)
self.usernameField.text = ""
self.passwordField.text = ""
}
}
}
}
//Dismiss the sign in screen
@IBAction func closeButton(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
//Format the text fields
textFieldUI()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//Display alert function
func displayAlert(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
//Textfield UI
func textFieldUI() {
passwordField.leftView = UIView(frame: CGRectMake(0, 0, 8, 0))
passwordField.leftViewMode = .Always
usernameField.leftView = UIView(frame: CGRectMake(0, 0, 8, 0))
usernameField.leftViewMode = .Always
}
}
где ур выполняетSegueWithIdentifier метод? –
Ваш знак в VC должен иметь контроллер навигации, чтобы сделать push-сегу !! –
self.performSegueWithIdentifier («SignUpToCreate», отправитель: self) находится в действии SignUpButton. – SB2015