Estoy trabajando en Swift, tengo un error en el formato tableview del didSelectRowAtIndexPath método.
Quiero pasar de un valor a otro controlador de vista que yo.e ‘secondViewController’. Aquí EmployeesId es una Matriz. El código es el siguiente:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var view: Dashboard = self.storyboard?.instantiateViewControllerWithIdentifier("Dashboard") as Dashboard

    self.navigationController?.pushViewController(view, animated: true)
    secondViewController.UserId = employeesId[indexPath.item]  //getting an error here.
}

Pero estoy recibiendo este Error:
fatal error: inesperadamente se encuentra con nil, mientras que desenvolver un valor Opcional.

Cualquier ayuda será apreciada.

  • ¿qué tipo de id de usuario? Si es un UILabel, será nulo hasta que la vista se representa. También, donde se secondViewController conjunto?
  • Debe ser indexPath.la fila, no indexPath.elemento, pero no sé si eso va a solucionar su problema. ¿Estás seguro de que employeesId[indexPath.artículo] no es nil?
  • es UserId (fuerte, nonatomic) en el seconfViewController?
InformationsquelleAutor Richa Goyal | 2014-10-31

3 Comentarios

  1. 5

    He aquí una solución general con dos supuestos. En primer lugar, id de usuario no es un UILabel. En segundo lugar, se pretende utilizar view que fue una instancia en la segunda línea, en lugar de utilizar secondViewController

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        var view: Dashboard = self.storyboard?.instantiateViewControllerWithIdentifier("Dashboard") as Dashboard
    
        self.navigationController?.pushViewController(view, animated: true)
        view.UserId = employeesId[indexPath.row]
    }

    Aquí es lo que Salpicadero parece que:

    class Dashboard: UIViewController {
        var UserId: String!
        @IBOutlet var userIDLabel: UILabel!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            //Do any additional setup after loading the view.
            userIDLabel.text = UserId
        }
    
        ...
    }
    • si quiero llamar a un servicio web mediante el «id de usuario» en viewDidLoad () ¿cómo voy a llamar porque el id de usuario devuelve nil
  2. 3

    Podemos pasar valor de uso «estructura» en swift 3

    1. Crear un swift archivo en el proyecto
    2. Crear una clase en el swift archivo creado como el bramido de

          class StructOperation {
            struct glovalVariable {
            static var userName = String();
           }
       }
    3. Realización de valor a «static var userName» variable de «struct glovalVariable» en «StructOperation» de la clase desde el Primer Controlador de Vista como

       @IBAction func btnSend(_ sender: Any) {
          StructOperation.glovalVariable.userName = "Enamul Haque";
         //Code Move to Sencon View Controller
       }
    4. En destino controlador de vista de obtener el valor como el bramido de

       var username = StructOperation.glovalVariable.userName;
    • esta es la mejor manera o que pasa globales de valor como otro [email protected] Haque
    • gracias @Dhaval Bhadania
    • Un enfoque profesional. Genial!!!
  3. 0

    es UserId(strong, nonatomic) en el secondViewController?

    Si es débil, se envió a la basura sobre la marcha. Usted tiene que hacer es fuerte.

Dejar respuesta

Please enter your comment!
Please enter your name here