2008-11-30 4 views
0

J'ai toujours été dérouté sur le couplage étrange dans l'API iPhone - en particulier, avec le UIViewController, qui a des références codées en dur à un UITabBarItem, UITabBarController, etc.couplage dans l'iPhone API

Ainsi, vous finissez par ajouter un UIViewController à un UITabBarController, qui à son tour interroge UIViewController sur ce qui devrait être affiché sur le UITabBar (via la propriété tabBarItem de UIViewController).

Pourquoi ne pas aller UITabBarController-> UITabBarItem-> UIViewController? Cela semble si évident.

Est-ce que quelqu'un d'autre pense que c'est vicieux?

Répondre

2

Le UITabBarItem est en fait plus d'un bouton qu'autre chose. C'est la chose sur laquelle vous appuyez pour sélectionner un onglet. Comme c'est un bouton, il ne devrait pas "posséder" le UIViewController qu'il affiche. Au lieu de cela, il envoie un message à UITabBarController pour basculer vers UIViewController comme indiqué par l'élément de la barre d'onglets sélectionné.

En outre, s'il vous plaît soyez prudent avec le terme "codé en dur." L'utilisation de ce terme implique que les valeurs ne peuvent pas être modifiées. Dans le cas de UITabBarController, il s'agit de propriétés que CAN et DO modifient.