1

iphone dev のストーリーボードに関するこのチュートリアルを読みました。男はボタンでビューを変更します。ただし、ボタンの接続はインターフェイス ビルダーを介して行われます。ビューが変更される前に、いくつかのチェック (ユーザー名/パスワードなど) を行うことができるように、プログラムでこれを行うにはどうすればよいですか? 前もって感謝します。

4

2 に答える 2

2

1 つのビューを他のビューと接続します (ボタンとビューを接続するのではありません)。セグエをカスタムに変更し、識別子を (IB で) 付けます。例: ログイン

次に、アクションを作成してボタンに割り当てます。

ボタン アクションで次を使用します。

[self performSegueWithIdentifier:@"Login" sender:self];

Segue Class オブジェクトを作成し、.m で次のようなものを使用します。

UIViewController *dst = [self destinationViewController];
UIViewController *nav = [self sourceViewController];

//All your custom code

[nav presentModalViewController:dst animated:YES];

編集: 重要なことを忘れていました!

IB では、セグエ構成で、セグエ クラスに、作成されたセグエ クラスの名前を入力します。例: LoginSegue は、作成されたセグエの名前です。セグエ クラスでは、「LoginSegue」と記述する必要があります。

編集: クラスを作成するには:

1.- UIStoryBoardSegue を拡張する新しいファイルを作成します。.h は次のようになります。

#import <Foundation/Foundation.h>

@interface LoginSegue : UIStoryboardSegue

@end

2.- 実装では、perform というメソッド内で上記のコードを使用します。

-(void)perform
{

UIViewController *dst = [self destinationViewController];
UIViewController *nav = [self sourceViewController];

 //Custom Code

 [nav presentModalViewController:dst animated:YES];

}

ソース viewController のプロパティにアクセスする必要がある場合は、次のように変更する必要があります。

UIViewController *nav = [self sourceViewController];

eYourClass *nav = [self sourceViewController];

この助けを願っています!

于 2012-11-30T20:26:44.963 に答える
0

ボタンを作成し、 touchUpInside アクションをIBActionインターフェースビルダーにドラッグすることができます

またはどこかのコードでviewDidLoad

  [self.login addTarget:self action:@selector(loginTapped) forControlEvents:UIControlEventTouchUpInside];

次に、loginTappedメソッドは次のようになります

- (void)loginTapped;
{
  if ([self authenticateWithUsername:self.username.text password:self.password.text]) {
    [self performSegueWithIdentifier:@"loginSuccessful" sender:self];
  } else {
    // Warn user about invalid username/password
  }
}

identifierこれは、引数に一致する名前でストーリーボードにセグエを作成したことに依存しています

于 2012-11-30T21:25:13.007 に答える