別のView Controllerにプッシュする際に問題があります。私は単純なログインシステムを作成しましたが、パスワードが間違っていてもデフォルトのView Controllerにプッシュされます。別のViewControllerを押す
注:ユーザー名とパスワードが有効な場合は、デバッグ領域に「ログイン」メッセージが表示されます。
別のView Controllerにプッシュする際に問題があります。私は単純なログインシステムを作成しましたが、パスワードが間違っていてもデフォルトのView Controllerにプッシュされます。別のViewControllerを押す
注:ユーザー名とパスワードが有効な場合は、デバッグ領域に「ログイン」メッセージが表示されます。
あなたはそれが直接、別のVCにセグエボタンをクリックすると、それが条件を確認する習慣例えば
ためのダイレクトボタンでセグエ接続を与えています。
あなたはストーリーボードのIDを使用している場合、VCとの間の接続を削除するには、直接direcltyクラス
を使用してセグエを指向let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let cameraVC = storyBoard.instantiateViewController(withIdentifier: "CameraViewController") as! CameraViewController
self.navigationController?.pushViewController(cameraVC, animated: true)
他
接続にアクセスすることができます
[self performSegueWithIdentifier:@"identifierName" sender:self];
コール
else {
print ("Logged in")
performSegue(withIdentifier: "identifierName", sender: self)
}
作品はチャームのようです! 注:performSegue(withIdentifier: "identifierName"、送信者:self)はself.performSegue(withIdentifier: "identifierName"、送信者:自己)にする必要があります ありがとう、皆さんありがとう! – Abdullah
あなたはセグエを使用する場合それは、より良いような。まず、識別子を持つCameraViewControllerのセグを作成します。次に、コーディングでそれを呼び出します。
performSegue(withIdentifier: "mySegueID"、送信者:自己)
1)シンプルなストーリーボードからIBActionターゲットからコードを削除します。
2)ストーリーボード - >プロパティ - >識別子 - >ここで1つの識別子を設定して、あなたのセグを選択してください。
3)コードにこのデリゲートを追加します。
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if identifier == "youridentifier" {
if username and password correct
{
return true
}
else
{
show alert here
return
}
}
return true
}
シンプル!
あなたはストーリーボードにsegueを追加しましたか?すべてのコードを投稿してください。 – ChanWarde
@Abdullahより多くのコードを表示します。 –
ボタンからの接続を削除し、クラス –