una passing pasar pantalla otro otra entre datos data ios swift uistoryboard uistoryboardsegue

ios - passing - pasar de una pantalla a otra swift



Pasando datos entre los controladores de vista en Swift (7)

Nota: si estamos utilizando storyboard.

Paso 1: Controlador maestro:

// table row which row was selected func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath!) { tableView.deselectRowAtIndexPath(indexPath, animated: true) println("You selected cell #/(indexPath.row)!") nextScreenRow = indexPath.row // get to the next screen self.performSegueWithIdentifier("dashboard_static_screen_segue", sender: self) }

y entonces;

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if (segue.identifier == "dashboard_static_screen_segue") { var detailController = segue.destinationViewController as StaticScreens; detailController.screenNumber = nextScreenRow } }// end prepareForSegue

paso 2: controlador de detalle (StaticScreen)

// set variable into your detail controller var screenNumber: NSInteger? println("selected row /(screenNumber!)")

Estoy tratando de convertir una aplicación de Objective-C a Swift pero no puedo encontrar cómo pasar datos entre vistas usando Swift. Mi código Objective-C es

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; AnsViewController *ansViewController; ansViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ansView"]; ansViewController.num = theNum; [self presentViewController:ansViewController animated:YES completion:nil];

Lo que está haciendo es, básicamente, toma la variable, theNum, y la pasa a la variable, num, en un controlador de vista diferente. Sé que esta puede ser una pregunta fácil, pero me estoy confundiendo bastante con Swift, así que si alguien pudiera explicar cómo lo cambió a Swift, ¡eso sería muy apreciado!

Gracias


Para pasar cadena o cualquier dato de un controlador a otro de forma rápida.

Sigue los pasos a continuación:

1) Crea una propiedad en el controlador hijo como var abc:string!

2) Crear objeto de controlador infantil.

let storyboard:UIStoryboard() let viewController: childcontroller = storyboard.instantiateViewControllerWithIdentifier("childcontroller") as! childcontroller viewController.abc = "hello"; self.navigationController.pushviewController(Controller:viewController animated:true CompletionHandler:nil)


Para pasar cadena o cualquier dato de un controlador a otro de forma rápida.

Sigue los pasos a continuación:

1) Cree la variable de tipo que desee como (String, Int) var test: String!

2) Crear objeto de controlador infantil.

let vc = self.storyboard?.instantiateViewController(withIdentifier: "Here identifier of your VC") as! (Here Name Of Your Controller) vc.test = "Hello" (Or any data which you want to pass) self.navigationController?.pushViewController(VC, animated: true)

Eso debería resolver tu problema.


Supongamos que estamos en la primera Vista, vaya a la Vista detallada y deseamos pasar los datos de la primera Vista a la Vista detallada. Para hacer eso con el guión gráfico, en firstView tendremos un método:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "segueTest") { //Checking identifier is crucial as there might be multiple // segues attached to same view var detailVC = segue!.destinationViewController as DetailViewController; detailVC.toPass = textField.text } }

y luego en la clase de DetailView declaramos una variable:

var toPass: String!

luego puede usar la variable toPass (por supuesto, puede cambiar el tipo de variable que desee, en esta EXI solo demo para el tipo de cadena).


class AnsViewController: UIViewController { var theNum: Int override func viewDidLoad() { super.viewDidLoad() println(theNum) } } override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) { let viewController = self.storyboard.instantiateViewControllerWithIdentifier("ansView") as AnsViewController viewController.num = theNum self.presentViewController(viewController, animated: true, completion: nil) }


@IBAction func nextbtnpreesd(_ sender: Any) { let mystring = "2" performSegue(withIdentifier: "MusicVC", sender: mystring) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if let destination = segue.destination as? MusicVC{ if let song = sender as? String{ destination.strlablevalie = song } } }

// en MusicVC crear cadena como:

var strlablevalie:String!


Using tableview, func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let ClubProfileView = self.storyboard?.instantiateViewController(withIdentifier: "CBClubProfileViewController") as! CBClubProfileViewController let TempCulubDic:NSDictionary = ((ClubsListbyDateDic.object(forKey:((ClubsListbyDateDic.allKeys as! [String]).sorted(by: <)as NSArray).object(at: indexPath.section) as! String) as! NSArray).object(at: indexPath.row))as! NSDictionary let ClubId:String=(TempCulubDic.value(forKey: "club_id") as? String)! let CheckIndate:String=(TempCulubDic.value(forKey: "chekin_date") as? String)! ClubProfileView.ClubID=ClubId ClubProfileView.CheckInDate = CheckIndate // self.tabBarController?.tabBar.isHidden=true ClubProfileView.hidesBottomBarWhenPushed = true self.navigationController?.pushViewController(ClubProfileView, animated: true) }