2016-11-21 18 views
1

マスター詳細ビューアプリケーションを作成しようとしています&私はちょっと固まっています。マスター詳細ビューアプリケーション

バーを表示しているテーブルビューが100 DynamicPrototypeCellsで、cellをタップすると、そのバーに関する詳細情報を表示したいと思います。ここに示されているよう

私の質問はDetailViewlabelsimagesなどの異なるdataを記入し、私は正しいdata

マイDetailview表現するためにタップし、各cellのためにそれらを変更する方法StaticCellsTableViewControllerされている。

Bars My Friends

私はSwift 2.3とXcode 8.1

を使用しています

BarProfile.Swift:

は、私は私のDetailViewデータを表現するクラスを作成し、このようになります

import Foundation 

class BarProfile { 
    var HeaderImage = "" 
    var HeaderTitle = "" 
    var Age = "" 
    var Adress = "" 
    var Number = "" 
    var Time = "" 
    var Music = "" 
    var Info = "" 
    var Menu = "" 
    var More = "" 

    init(HeaderImage: String, HeaderTitle: String, Age: String, Adress: String, Number: String, Time: String, Music: String, Info: String, Menu: String, More: String) { 


     self.HeaderImage = HeaderImage 
     self.HeaderTitle = HeaderTitle 
     self.Age = Age 
     self.Adress = Adress 
     self.Number = Number 
     self.Time = Time 
     self.Music = Music 
     self.Info = Info 
     self.Menu = Menu 
     self.More = More 

    } 
} 

マイBarsTableView

enter image description here

BarsTableViewController.Swift :

import UIKit 


class BarsTableViewController: UITableViewController,UISearchResultsUpdating,UISearchBarDelegate,UISearchDisplayDelegate{ 

    @IBOutlet var tableViewController: UITableView! 

    // MARK : Data 


    var names = ["Shalvata", 
       "Markid", 
       "Litzman Bar", 
       "The Cat & The Dog", 
       "Light house", 

var streets = 
    ["האנגר 28,נמל תל אביב", 
     "אבן גבירול 30,תל אביב", 
     "רחוב נמל תל אביב", 
     "קרליבך 28,תל אביב", 
     "האנגר 23,נמל תל אביב"] 

var images = [UIImage(named: "Shalvata"), 
        UIImage(named: "Markid"), 
        UIImage(named: "Litzman Bar"), 
        UIImage(named: "CatNDog"), 
        UIImage(named: "LightHouse")] 

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
    { 
     return 100.5; 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     //////// 

       //////// 
    } 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ 
     let cell = self.tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomCell 
     let user = filteredUsers[indexPath.row] 
     cell.photo.image = user.image 
     cell.name.text = user.name 
     cell.streetName.text = user.streetName 


     return cell 
    } 

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     self.performSegueWithIdentifier("BarsProfile", sender: nil) 
    } 
} 

私が実際に探していることを示すチュートリアルが見つかりませんでした。ここで答えを見つけることを望んでいました。detailViewはすべてのプロジェクトやアプリケーションの基本です。

私はどのように続行するのか分かりません。私はそれについてかなり不満です。あなたがprepareForSegue機能を通じて詳細ビューにデータを渡すと、宛先ビューで変数またはコール機能を設定することができます:)

+0

どんなクラスの 'prepareForSegue'方法は、あなたのマスターであることを示しています。 – Frankie

+0

私はまだそれを持っていない –

+0

その後、詳細なチュートリアルを行う必要がありますし、具体的な質問をしてください。試してみてください:http://www.techotopia.com/index.php/Implementing_iOS_8_TableView_Navigation_using_Storyboards_in_Xcode_6_and_Swift – Frankie

答えて

1

助けるため

感謝。

これを実行する方法の例を示します。これは、あなたが提示するために使用するビューの詳細は、「タイプDetailViewとご主人からセグエであることを前提として - >詳細は、「BarsProfile」と呼ばれる:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if(segue.identifier == "BarsProfile") { 
      if(segue.destination is DetailView) { 
       let destVC = segue.destination as! DetailView 
       // Set variables in Detail View here 
       // e.g. : 
       destVC.detailData = selectedData 
      } 
     } 
    } 
+0

そして、私はこれを行う場合、私のdidselectrowは同じにとどまっていますか? –

+0

質問が分かりません。私の理解では、対応する「詳細」ビューを開き、選択した項目の情報を入力する「マスター」ビューの表の行を選択したいと考えています。これは正しいです? – Tom

+0

@RicketyRick –

関連する問題