6

Storyboard を使用したアプリケーションがあります。ビューには AlertViewDialog があります。

ユーザーが最初のボタン (「はい」) をクリックしたときに、ストーリーボードで別のビューを開くにはどうすればよいですか?

4

3 に答える 3

10

私はこれが助けることができます:

  1. ビューをドラッグしてから、Identity Inspector に移動します (ショートカット: option+apple+3)。
  2. 新しくドラッグしたビューを選択し、タイトル Storyboard ID の識別インスペクターから一意の名前を付けます。// 参照用の画像を参照してください ここに画像の説明を入力

viewController の SecondViewController クラス (.h &.m) サブクラスを作成します。

次に、アラートビューコードから(はいをクリックしたときに言ったように)

以下のコードを貼り付けます

SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"vinay"];
        [svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
        [self presentViewController:svc animated:YES completion:nil];

問題が発生した場合はお知らせください。

于 2013-01-17T15:27:13.137 に答える
5

これが役立つかもしれません:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ClassNameViewController *viewController = (ClassNameViewController *)[storyboard instantiateViewControllerWithIdentifier:@"viewIdentifierOnStoryboard"];
[self presentModalViewController:viewController animated:NO];
于 2013-01-17T14:41:05.577 に答える
0

最初に行う必要があるのは、このように追加するようにUIAlertViewデリゲートを設定することです。UIAlertViewDelegate@interface

      @interface myClass : super <UIAlertViewDelegate>
            // super could be anything like `UIViewController`, etc
      @end

そして、次の@implementationようなものを追加できます

      @implementation myClass

      ........... Some code


      - (IBAction)someActionMethod:(id)sender
      {
            UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:nil
                                                                  message:@"Would you like to move on?"
                                                                 delegate:self
                                                        cancelButtonTitle:@"No"
                                                        otherButtonTitles:@"Yes", nil];
             [myAlertView show];
             // [myAlertView release]; Only if you aren't using ARC
      }

      - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
      {
              switch(buttonIndex) {
                    case 1:
                          SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"secondViewController"];
                          [svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
         //  [self presentViewController:svc animated:YES]; // Deprecated in iOS 6.0
                          [self presentViewController:svc animated:YES completion:nil]; // Introduced in iOS 5.0
                          break;
                    default:
                          break;
              }
      }

      @end

ストーリーボードに一意の識別子を設定することを忘れないでください。あなたはこれを行うことが.storyboardできます. それはとても簡単です。Storyboard IDinstantiateViewControllerWithIdentifier"secondViewController"

完了したら、このビューを閉じることを忘れないでください。使用する必要があります

       [self dismissModalViewControllerAnimated:YES]; 

上記は実際にはiOS 6.0で廃止されましたが、使用できます

       [self dismissModalViewControllerAnimated:YES completion:nil];

最後に完了ブロックを追加することを除いて、同じことを行います。

お役に立てれば。

于 2013-01-17T15:55:07.243 に答える