1

Xcode4.3.1を使用しています。多くのビューコントローラを備えたストーリーボードを使用してUIを作成しました。

問題

私のアプリでは、ShakeGestureを使用しています。揺れている間、私はいくつかの操作をしています、それはうまく働いています。しかし、揺れが止まると、それを表示するためにいくつかの値を別のViewコントローラーに渡す必要があります。ボタンがクリックされたときに値を渡す方法を示す多くの投稿を見てきましたが、私の問題に関係する人は誰もいません。

私の問題を解決していただければ幸いです

私の質問は

シェイクが停止した後、あるビューから別のビューコントローラーに値を渡す方法は?

例やチュートリアルを探しています。とても有難い。

上記の質問の正確な関数

FirstViewControllerにボタンがあります

ここに画像の説明を入力してください

ボタンがトリガーされると、いくつかのデータを含むピッカービューがポップアップ表示されます。ユーザーがそれを選択すると、ピッカー値がボタン値に置き換わります。

ここに画像の説明を入力してください

次に、停止したときにシェイクが発生します。データを他のViewControllerに渡す必要があります。

コード

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake)
{
        // I need to pass data here. Thats i am confusing

}

}

この質問は以前に尋ねられましたが、私は解決策を得ることができませんでした。それが私が再び尋ねている理由です。お詫び申し上げます。助けてくれてありがとう

4

2 に答える 2

2

データを明示的に、prepareForSegue呼び出しを使用したスト​​ーリーボードで渡すことができます。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([[segue identifier] isEqualToString:@"ContactsViewControllerSegue"]){
        ContactsViewController *cvc = (ContactsViewController *)[segue destinationViewController];
        cvc.contacts = self.contacts;
        cvc.delegate = self;
    }
}

完全なチュートリアルについては、このWebサイトを確認してください。

プログラムでセグエをトリガーするには、Apple Docsを確認できますが、これが向きの変更に関する例です。

- (void)orientationChanged:(NSNotification *)notification
{
    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
    if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
        !isShowingLandscapeView)
    {
        [self performSegueWithIdentifier:@"DisplayAlternateView" sender:self];
        isShowingLandscapeView = YES;
    }
// remainder of example omitted....
}

したがって、シェイクが停止したときにセグエをトリガーし、prepareForSegueメソッドで次のviewControllerを準備します。

于 2012-08-03T09:33:40.180 に答える
0

SecondViewControllerで文字列オブジェクトを作成し、Property(nonatomic、retain)を設定して合成し、以下のコードの後に​​コントローラーをプッシュするときに追加する必要があります。

SecondViewController *objSecondViewController=[[SecondViewController alloc] 
initWithNibName:@"SecondViewController" bundle:nil];             

objSecondViewController.strtitle=@"Your data";
[self.navigationController pushViewController:objSecondViewController animated:YES];
[objSecondViewController release];
于 2012-08-03T09:27:01.987 に答える