2016-05-16 5 views
0

segue(1つのビューコントローラーから別のタブビューコントローラーにモーダル)を実行します。問題は、デフォルトの(インデックス0の)ビューコントローラをロードしていることです。ここにコードです:デフォルト以外のタブビューコントローラーとモダリティの異なるストーリーボードとのセグを実行

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    if (segue.identifier == "toRateSegue") { 

     let nav = segue.destinationViewController as! UINavigationController 

     let svc = nav.topViewController as! RateViewController; 
     svc.cell = self.cellSelected 
    } 

    if (segue.identifier == "toChat") { 
     let tabIndex = 1 
     let segue = segue.destinationViewController as! UITabBarController 

     if let navVC = segue.viewControllers?[0] as? UINavigationController { 
      let vc = navVC.viewControllers.first as! CustomProfileViewController 
      vc.event = self.event 

     } 

     if let navVC = segue.viewControllers?[tabIndex] as? UINavigationController { 
      let vc = navVC.viewControllers.first as! ChatViewController 
      vc.event = self.event 
      print("Event is \(self.event.eventId)") 
      // if self is the event creator 
      if (self.userName == self.event.createdBy.objectForKey("username") as? String) 
      { 


       let query = PFQuery(className:"Event") 
       query.getObjectInBackgroundWithId(self.event.eventId!) { 
        (curevent: PFObject?, error: NSError?) -> Void in 
        if error == nil && curevent != nil { 

         let userObject:PFUser = curevent!["joinedBy"] as! PFUser 

         print("userObject.objectId \(userObject.objectId)") 

         vc.otherName = String(userObject.objectForKey("firstname")!) 
         vc.otherProfileName = String(userObject.objectForKey("firstname")!) 
         //print("vc.otherProfileName \(vc.otherProfileName)") 
         let senderuserName = PFUser.currentUser()!["username"] as? String 
         //print("senderuserName \(senderuserName)") 

         vc.roomid = self.event.geteventID() + vc.otherProfileName + senderuserName! 

         // print("roomid \(vc.roomid)") 

        } else { 
         print(error) 
        } 

       } 

      }else 
      { 

       vc.otherName = (self.event.createdBy.objectForKey("firstname") as? String)! 
       vc.otherProfileName = (self.event.createdBy.objectForKey("firstname") as? String)! 
       let senderuserName = PFUser.currentUser()!["username"] as? String 

       vc.roomid = event.geteventID() + senderuserName! + vc.otherProfileName 

      } 


      self.tabBarController?.selectedIndex = tabIndex 

    } 
    } 

} 

私はtoChat segueについて話しています。

let connect = UITableViewRowAction(style: .Normal, title: "Connect") { action, index in 

      self.event = cell.event 

     self.performSegueWithIdentifier("toChat", sender: nil) 



    }` 

は、私は、インデックス1ではなくprepareForSegueで、UITabBarControllerに別のタブに移動するには、selectedIndexを設定0

答えて

0

indexのタブのビューに行きたい:これは次のようにテーブルビューのFUNCに呼ばれていますUITabBarControllerあるdestinationViewControllerため1へ:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let dvc = segue.destinationViewController as? UITabBarController { 
     dvc.selectedIndex = 1 
    } 
} 
+0

私は実際にそれを解決し、更新しようとしていました。答えは私の目の前にあった。 – subodh1989

関連する問題