2017-10-16 7 views
0

J'utilise Xcode 9.0.SearchBar connecté avec storyboard est nul

Mon problème est simple: j'ai déposé un objet UISearchBar dans un TableViewController. Je me suis connecté ce mySearchBar comme IBOutlet à la classe TableViewController:

class MyTableViewController: UITableViewController, UISearchBarDelegate, UINavigationControllerDelegate { 

    @IBOutlet weak var mySearchBar: UISearchBar! 
    @IBOutlet var myTableView: UITableView! 
} 
override func viewDidLoad() { 
    super.viewDidLoad() 

    navigationController?.delegate = self 

    self.mySearchBar.delegate = self // EXC_BREAKPOINT HERE 
    self.myTableView.delegate = self 

    self.myTableView.backgroundColor = UIColor.init(red: 0.0/255.0, green: 60.0/255.0, blue: 113.0/255.0, alpha: 1.0) 
} 

Le cercle à gauche est rempli - donc je suis sûr que l'objet est correctement connecté. Quand je lance le projet, il arrête à la ligne ci-dessus, Withe le message d'erreur:

fatal error: unexpectedly found nil while unwrapping an Optional value.

J'ai essayé de:

  • propre projet et reconstruisent
  • supprimer derivedData, propre et reconstruisent
  • Supprimer objet UIsearchBar dans StoryBoard, en supprimer un nouveau et reconnecter comme IBOutlet
  • détruire le contrôleur dans StoryBoard et recréer un nouveau.

Je n'ai aucune idée de poursuivre. Toute aide appréciée. Je sais que tu peux!

EDIT: ici une capture d'écran avec les connexions Inspecteur: enter image description here

EDIT2: Filtro Localita T est mon TableViewController comme vous pouvez le voir dans cette seconde capture d'écran enter image description here

+0

Ajouter une capture d'écran du storyboard avec UISearchBar sélectionné et avec l'inspecteur de connexions ouvert (barre latérale gauche la dernière icône avec cercle et une flèche) – Ladislav

+1

Et qu'est-ce que Filtro Localita t ... puisque vous avez défini votre sortie sur 'class MyTableViewController : 'Je m'attendrais à voir' MyTableViewController' là – Ladislav

+0

@Ladislav c'est exactement ce que vous attendiez ... – cicaletto79

Répondre

0

Je l'ai résolu. Le problème était de pousser à ce contrôleur. Au lieu de:

let destinationView = FiltroLocalitaTableViewController() 
destinationView.palina = self.transito.palina 
self.navigationController?.pushViewController(destinationView, animated: true) 

je:

let filtroLocalitaVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "filtroLocalitaView") as! FiltroLocalitaTableViewController 
filtroLocalitaVC.palina = self.transito.palina 
filtroLocalitaVC.delegate = self 
self.navigationController?.pushViewController(filtroLocalitaVC, animated: true) 

et cela a fonctionné.