【问题标题】:Multiple array elements selected from one viewcontroller to another viewController从一个视图控制器中选择多个数组元素到另一个视图控制器
【发布时间】:2017-03-27 11:47:50
【问题描述】:

我已经从我的第一个 vc 到第二个和第二个从表条目的第二个到第一个的 segue。

需要tableview的一个一个选择值并将其从segue destination复制到第一个viewcontroller的文本框,它总是在从vc2到vc2时加载viewdidload,我需要使用viewdidappear

class membersViewController: UIViewController,UITableViewDataSource,UITableViewDelegate
 {

var array = ["Gurpreet","Pulkit","Raman","Rajan","Jonish"]
var searchActive : Bool = false
 var filtered:[String] = []
 var selectedMem = ""
 override func viewDidLoad() {
 super.viewDidLoad()
       }
 @IBOutlet var tableView: UITableView!
 func numberOfSections(in tableView: UITableView) -> Int {
    return 1
      }
 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
           return array.count
}
 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
 let cell = tableView.dequeueReusableCell(withIdentifier: "cell")! as UITableViewCell
    cell.textLabel?.text = array[indexPath.row]
    return cell 
     }
 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "segueMember"
    {
        let vc = segue.destination as! testViewController
        vc.selectedMem = selectedMem
    }
    }

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)     {
         selectedMem = array[indexPath.row]
         performSegue(withIdentifier: "segueMember", sender: nil)
      // dismiss(animated: true, completion: nil)
           }
  class testViewController: UIViewController {
         var selectedMem = ""
         override func viewDidLoad() {
         super.viewDidLoad()
         textMem?.text = selectedMem
       }
 override func viewDidAppear(_ animated: Bool) {
    textMem?.text = (textMem.text)! + selectedMem
}
    override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
     }
  @IBOutlet var textMem: UITextField!

【问题讨论】:

  • 问题不清楚。您能否提及实际发生的情况以及您想要什么,以便我们做出相应的回应。
  • 你想将多个选定的项目发送到第二个视图控制器吗?

标签: ios iphone swift tableview segue


【解决方案1】:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: Ind. exPath)
 {
   selectedMem = array[indexPath.row]
  performSegue(withIdentifier: "segueMember", sender: self)
  // dismiss(animated: true, completion: nil)
}

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){{

  if (segue.identifier == "segueMember") 
  {

    let viewController = segue.destinationViewController as YourViewController
   // make property in YourViewController class
    viewController.yourValue = selectedMem 
  }
}

【讨论】:

  • 它正在获取一个值并显示,但是当我再次从列表中选择另一个时,它会覆盖它..我正在使用现在的 segue..!!
  • 我已经通过使用 print a msg 进行了检查,它总是加载 viewdidload..我想保存第一个 vc 并从另一个 vc 获取值,它可能是 b 3 6 个值..我必须去来回..!!!
  • 对于多个值,您可以制作字典并传递它
  • 如果您不想在用户默认值中创建属性而不是保存值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多