Vous ne pouvez pas forcer une autre vue de mettre à jour par une action qui se produit dans une autre vue. Au lieu de cela, vous devez configurer le contrôleur de vue pour vérifier certaines données juste avant que la vue ne s'affiche.
Lorsqu'une vue n'est pas visible à l'écran, vous pouvez la voir comme étant en veille. Dans le cas d'une barre d'onglets, le contrôleur de barre d'onglets n'active que le contrôleur de vue pour l'affichage de l'onglet actuellement affiché. Par conséquent, même si vous envoyez des informations à un contrôleur de vue lorsqu'il n'est pas actif, il ne mettra pas automatiquement à jour sa propre interface. Au lieu de cela, vous devez configurer manuellement le contrôleur de vue pour vérifier les nouvelles données. Le plus souvent, il s'agit de viewWillAppear
qui est appelé chaque fois que la vue du contrôleur est sur le point d'être affichée (par exemple lorsque son onglet est sélectionné.)
Dans votre cas spécifique, vous avez besoin d'une variable globale qui identifie à la fois le morceau et le données de chansons. Lorsque vous appuyez sur le bouton, la méthode d'action doit définir cette variable globale sur la chanson appropriée. La tabview infos sur la chanson ne fait rien jusqu'à ce que l'utilisateur sélectionne son onglet. À ce stade, les contrôleurs de vue examinent la variable globale et chargent les informations dans les éléments de l'interface utilisateur avant que la vue n'apparaisse. Du point de vue de l'utilisateur, les onglets d'informations sur la chanson et la chanson apparaissent synchronisés.
Je ne peux pas fournir plus de détails sans voir votre code actuel ou votre conception d'application plus large.
Veuillez reformuler cette question. Comme on ne sait pas ce que vous demandez. –