2

ストーリーボードと xcode (4.6 を使用) は初めてです。プッシュ セグエでナビゲーション ストーリーボードを使用しています。選択したスナップ ビューを実装したいと思います。少なくとも 1 つのスナップが選択されている場合、セグエが機能します。それ以外の場合、ユーザーは同じビューにとどまる必要があります。

SelectSnapsViewController と ShippingDetailViewController の 2 つの UIView を作成しました。

SelectSnapsViewController.m に以下を追加しました。

- (IBAction)nextButtonPressed:(id)sender
{
    looseDataAlert = NO;
    [okkkBtn setFrame:CGRectMake(116, 272, 72, 37)];
    if ([appDelegate.selImageDetails count] == 0)
    {
        label1.text = @"To proceed you need to add snaps.";
        [self openAlertView];
    }
    else{
        [self performSegueWithIdentifier:@"MySegue" sender:self];
    }
}

コードをデバッグすると、それが常に else の場合に該当することがわかりますが、セグエ (新しいビューへの遷移) は引き続き発生します。

ユーザーが新しいビューに転送されないようにするにはどうすればよいですか?

4

2 に答える 2

3

条件付きセグエを実装するには、2 つの方法があります。

1) Segues を ViewController から「手動」として構成しperformSegueWithIdentifier、ボタンのイベント処理に接続する IBAction メソッド内で条件付きで呼び出します。

または 2) Segue をボタンから「トリガーされた Segue」として構成- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)senderし、View Controller に実装して条件付きロジックを実行します。

于 2013-05-21T09:54:08.253 に答える
1

条件が真の場合にのみセグエを実行したいということですか?

その場合は、コントロールまたはテーブル セルから直接セグエを作成する代わりに、トリガーのないセグエを作成します。トリガーのないセグエはビュー コントローラーをソースとして持ち、自動的に起動することはありません。代わりに、IBAction からなど、いつでもプログラムで起動できます。

トリガーのないセグエを作成するには、シーンの下部にあるシーン ドックに含まれるビュー コントローラー アイコンから、コントロールを押しながらセグエをドラッグします。通常どおり目的のシーンにドラッグし、セグエ タイプを選択します。セグエを選択し、インスペクターでセグエ識別子を選択します。

実行時にセグエを実行する場合は、-[UIViewController performSegueWithIdentifier:sender:] を呼び出します。送信者には、nil を含め、任意のオブジェクトを渡すことができます。送信者があなたを必要としない場合は、nil を渡してください。

つまり、要約すると:

Create a triggerless segue from the view controller to the destination scene
Set an identifier for the segue in the inspector
At runtime, and form code, call -[UIViewController performSegueWithIdentifier:sender:] when you want to trigger the segue.
于 2015-05-12T05:07:59.930 に答える