2016-05-19 6 views
0

私はX行のテーブルビューを持っています。行の1つをタップすると、別の値のビューコントローラが表示されます各。 私はprepareForSegueを使用する必要があることを知っていますが、私はどのようにわかりません。 例を作成します: 4行のテーブルビューがあります。 私は最初の行をタップし、ラベルが "1"であるビューコントローラを開きます。 私は2番目の行をタップし、 "2"と表示されたラベルを持つビューコントローラを開きます。 など。 数百万のビューコントローラを作成する必要はありません。そのうちの1つだけを毎回変更したいと考えています。テーブルビューの配列をxcode7のビューコントローラに素早く渡します

あなたは私を大好きにします。 ありがとう

+1

あなたはTableViewチュートリアルを試しましたか?それらのほとんどすべてが、あなたが記述している動作をカバーしています –

+0

[View Controller間でデータを渡す]可能な複製(http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –

+0

チェックアウト:http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers?rq=1 –

答えて

0

まず、ユーザーの選択を検出する必要があります。

これは-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath機能で行われます。

選択した行が検出されたら、次のView Controllerを呼び出す必要があります。あなたがプロパティを作成し、他のオブジェクトと同じように設定することができます UIViewController* viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Your VC identifier here"];

は別のコントローラに情報を渡すには:

[viewController setCustomArray:@[]]

あなたはストーリーボードを使用して表示したいのViewControllerをインスタンス化することによってこれを行うことができます最後に、ビューコントローラを提示する必要があります。

[self presentViewController:viewController animated:YES completion:nil]

+0

私はちょうどあなたが迅速に求めていることを理解しましたが、簡単に機能を翻訳することができます。 –

0

あなたはあなたに次のように追加する必要がありますtableViewControllerクラスごSecondViewControllerクラスで

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    text = indexPath.row 
    performSegueWithIdentifier("YourSegue", sender: self) 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "YourSegue" { 
    let yourOtherVC = segue.destinationViewController as? SecondViewController 
     yourOtherVC?.text = text 
    } 
} 

、次の行を追加します。

class SecondViewController: UITableViewController { 

var text:String = "" 
@IBOutlet weak var myLabel: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if text != nil { 
     myLabel.text = text 
    } 
} 

は、この情報がお役に立てば幸いです。 :)

+0

正常に動作しますが正しく動作しません。それは、tableViewController内の識別子 'text'_を使用しています。 tableViewControllerで 'text' varを作成する必要がありますか、それともViewControllerから呼び出す必要がありますか? – Campa

+0

はい、 'tableViewController'にvarを作成して、選択した行数を格納する必要があります。次に、このvarを 'prepareForSegue'で参照して、次のviewControllerにデータを渡します – bhakti123

関連する問題