2017-06-26 8 views
0

Après avoir importé UIKit et tenter de basculer autour avec où initialiser les couleurs programme boutons, je ne peux pas sembler comprendre pourquoi un accident se produit dans la classe conforme à WKInterfaceControllerWatchKit setBackground couleur crash

import UIKit 
import WatchKit 

class InterfaceController: WKInterfaceController { 

    @IBOutlet fileprivate var myButton : WKInterfaceButton! 

    override func willActivate() { // About to be visible to user 
    super.willActivate() 

    self.myButton.setBackgroundColor(UIColor.red) // CRASH 
    } 
} 

enter image description here

enter image description here

enter image description here

+0

Il n'y a rien de mal avec votre ligne de code actuelle, affichez le message d'erreur. –

+0

@RashwanL juste l'image ci-joint – lifewithelliott

Répondre

1

La raison était dans les points d'arrêt inutilisés.

Quoi qu'il en soit:

Utilisez awake(withContext:) pour changer l'interface utilisateur:

When creating an interface controller, WatchKit instantiates the class and calls its init() method followed shortly by its awake(withContext:) method. Use those methods to initialize variables, load data, and configure the items in your storyboard scene. If WatchKit passes a valid object to the awake(withContext:) method, use the information in that object to customize the initialization process.

Vous ne pouvez pas utiliser willActivate() pour changer la couleur de fond, etc .:

The willActivate() method lets you know when your interface is active. Use the willActivate() method to perform any last minute tasks, such as checking for updates to your content. (Do not use it for your primarily initialization.)

également toujours utiliser weak points:

@IBOutlet fileprivate weak var myButton : WKInterfaceButton! 

Et vérifiez que votre prise était connectée.

+0

le bouton ne revient pas nil donc je ne sais pas quel est le problème, et en ce qui concerne «faible». Dans iOS, je sais que lors de la connexion de prises que 'weak' est utilisé par défaut, mais pas dans WatchOS - donc je ne voulais pas ajouter quelque chose que Apple a pensé ne devrait pas être là. – lifewithelliott

+0

Pourriez-vous ajouter un texte de message d'erreur? –

+0

Autre que l'instruction de garde renvoyant une instruction d'impression, je ne suis pas sûr de savoir comment ajouter une autre erreur en saisissant le type de texte. Que voulez-vous dire par le texte du message d'erreur, pourriez-vous fournir un exemple? – lifewithelliott