2016-06-19 6 views
1

私はtableviewコントローラを作り、プロトタイプのセルの中にボタンを追加しました。私はこのボタンをドラッグしてこのセルに新しいファイルを作成しました。tableviewのsegue viaボタンは、1つではなく2つのseguesを実行します

次に、新しいテーブルビューファイルを作成し、ボタン内に表示する画像を追加しました。ここまでは順調ですね。

問題は次のとおりです。それぞれのボタンから、それぞれが独自のビューコントローラを持つsegueを実行したかったのです(マスターとディテールビューコントローラを使用するよりも簡単でした。私の問題は次のようである:私がこのコードを使用して、うまく動作することが期待:

cell.sportButton.tag = indexPath.row 
cell.sportButton.addTarget(self, action: #selector(TableViewControllerSport.buttonClicked), forControlEvents: .TouchUpInside) 

buttonClicked FUNC:異なるseguesに参照

func buttonClicked(sender: UIButton) 
{ 
    let buttonRow = sender.tag 

    if buttonRow == 0 { 
     self.performSegueWithIdentifier("segueSportinfrastructuur", sender: self) 
    } 
    else if buttonRow == 1 { 
     self.performSegueWithIdentifier("segueSportdienst", sender: self) 
    } 
    else if buttonRow == 2 { 
     self.performSegueWithIdentifier("segueSportraad", sender: self) 
    } 
    else if buttonRow == 3 { 
     self.performSegueWithIdentifier("segueSportverenigingen", sender: self) 
    } 
    else if buttonRow == 4 { 
     self.performSegueWithIdentifier("segueGsport", sender: self) 
    } 
    else if buttonRow == 5 { 
     self.performSegueWithIdentifier("segueSportactiviteiten", sender: self) 
    } 

} 

を。問題は:ボタンの1つをクリックすると、最初に "segueSportinfrastructuur"が実行され、その後にsegueが実行されるはずです。 戻るボタンをクリックすると、アプリは "Sportinfrastructuur" VCに戻ります。そのため、もう一度[戻る]ボタンをクリックしてtableViewに戻る必要があります。

これを修正する方法を知っている方は、大変感謝しています。

+2

あなたのセグの設定が間違っているようです。それぞれのセグが正しいView Controllerソースから正しいView Controller宛先に移動することを二度と確認することを検討することができます。また、ビューコントローラは、IBのコントローラを表示するためのボタンではなく、コントローラを表示するためのビューコントローラからのものでなければならないことに注意してください。あなたのアプリは、「segueSportinfrastructur」というセグをトリガーしている可能性があります。そうすれば、右のView Controllerから他のセグをトリガーできます。 – Ike10

+0

Interface Builderのボタンの "action"アウトレットからセグを送信したことを確認してください – Paulw11

+0

セグを設定していないことを確認する必要があります。 – Paulw11

答えて

0

ストーリーボードで接続したセグが1つあります。あなたがテーブルビューから他のコントローラにドラッグアンドドロップすることで設定したセグを呼び出すかもしれません。

2番目のコードがコードから呼び出している可能性があります。

+0

最初に間違った –

0

didSelectRowAtIndexPathを使用して簡単にしないでください。 ここに大きな例がありますHow to get textLabel of selected row in swift?

+0

私はスイッチのセットアップを使用して終了しましたが、didSelectRowAtIndexPathはこの設定では実用的ではありませんでしたが、それは個人的な好みのちょうどケースだと思います –

関連する問題