2016-03-30 18 views
-1

これは奇妙な疑問であり、テーブルビューがどのように機能するか直感的ですが、テーブルビューに3つのセルを作成する配列があります。私たちは現在ベータ版に取り組んでおり、最初のセルをクリックしたときにセグメンテーションする必要があるのは、他の2つのセルDONTを使用する必要がある場合だけです。あなたは、私が唯一あなたが何かをクリックした場合は、「riverrockplace」をクリックすると、アプリが何もしない場合、それは大丈夫ですビューがセグエにしたい見ることができるようにここでSegueテーブルビューは1つのセルだけがクリックされたとき

は、私たちのテーブルビュー

import UIKit 

class TableViewController: UITableViewController { 
let locationManager = CLLocationManager() 
//Store Array of Images 
var imageArray = ["riverparkplace","mayfair","jamesonhouse",] 
//Array of Image Names 
var textArray = ["River Park Place", "MayFair", "Jameson House"] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    locationManager.requestAlwaysAuthorization() 
    if KCSUser.activeUser() == nil { 
     print("User Not Logged In") 
     performSegueWithIdentifier("jobsiteTOLogin", sender: nil) 
    } else { 
     //user is logged in and will be loaded on first call to Kinvey 
     var currentusername = KCSUser.activeUser().givenName 
     print("User named:\(currentusername) has logged in ") 
    } 


} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell! 

    //cell.textLabel?.text = textArray[indexPath.row] 

    let imageView = cell.viewWithTag(1) as! UIImageView 
    imageView.image = UIImage(named: imageArray[indexPath.row]) 

    let textLabel2 = cell.viewWithTag(2) as! UILabel 
    textLabel2.text = textArray[indexPath.row] 

    return cell 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return imageArray.count 
} 

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

} 


//Buttons 
@IBAction func logoutButton(sender: AnyObject) { 
    if KCSUser.activeUser() == nil{ 
     //User is not logged in 
     print("Cant log out user since they are not logged in!!") 

    }else{ 
     KCSUser.activeUser().logout() 
     print("User Logged out") 
     performSegueWithIdentifier("jobsiteTOLogin", sender: nil) 

    } 
} 



} 

のいくつかのコードですそれがポップアップ通知を返した場合はさらに良いでしょう。

また、この段階で私がセグをすると、私と一緒にデータを取る必要はありません。

答えて

0

あなたがseguesの異なる種類を使用して、この問題にアプローチすることができ、2つの方法があります

  1. あなたが先にあなたのセルからドラッグ制御により、セル選択に発射セグエを追加することができますが。次にメソッドを実装し、senderを呼び出してどのセルが呼び出されているかを把握し(sender)、その情報に基づいて起動します。
  2. TableViewControllerの上部にある黄色のコントローラーアイコンから宛先にドラッグして、カスタムセグを追加できます。次に、didSelectRowAtIndexPathに、あなたがセグをするかどうかを決定します。必要があれば、performSegueWithIdentifier:に電話してください。
0

このようなdidSelectデリゲートメソッドを実装します。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     if indexPath.row == 0{ 
      // perform segue 
     }else{ 
      // no action needed 
     } 
    } 
0

あなたはそれが混乱する可能性があるとして、あなたは、起きてからクリックアニメーションを防ぐために使用されることはありません細胞に偽userInteractionEnabled =を割り当てることができますユーザーがセルをクリックすると、スタイルが変わり、何も起こりません。あなたには、いくつかの有用な情報を提供するために、警告をポップアップ表示したい場合はMd.Muzahidul

0
により示唆されるように

あるいは、あなたは、indexpath.rowを使用してselctionのインデックスをフィルタリングするために、あなたのコードからdidSelectRowAtIndexPathメソッドを使用することができます

私があなたの問題を正しく理解していれば、あなたがしなければならないのは、tableViewの最初のセルだけをクリックすると、XViewControllerにナビゲートしたいということです。あなたは下の画像のようにFilesOwnerなくセル自体をクリックすることでセグエをドラッグすることで作成することができ、条件付きseguesを、使用する必要があり、その場合には

enter image description here

次に選択

enter image description here

次に、あなたがDでセグエを発射する必要があり、作成したばかりのセグエと下の画像のように属性インスペクタでその識別子を設定します以下に示すようにidSelectRowAtIndexPathが、これはあなたを助けるでしょう

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    // Get the new view controller using segue.destinationViewController. 
    // Pass the selected object to the new view controller. 
    if (segue.identifier == "ConditionalNavigationToXViewController")  { 
     segue.destinationViewController as? XViewController 
    } 
} 

希望、

//On Click 
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.performSegueWithIdentifier("ConditionalNavigationToXViewController", sender: self) 
} 

が続いて以下のようにセグエを確認し、あなたのコードを変更します。

関連する問題