2010-02-26 3 views
3

Je viens de commencer à me lancer dans le développement de l'iPhone. J'ai été mish-mashing tutoriels et matériel de livres afin de me repérer. Je viens d'un arrière-plan PHP et Java ... Objective-C est un peu excentrique. Mais, j'apprends mieux en me mouillant les pieds.iPhone dev noob question: Invoquer l'action explicitement au lancement de l'application

Fondamentalement, j'ai ces actions. getPhoto est lié à deux UIBarButtonItems à mon avis. Mon but est d'invoquer la même action une fois l'application lancée, en ouvrant automatiquement la caméra. Comment pourrais-je m'y prendre?

+1

Dans mon autoproclamé rôle Nazie d'interface, je dois demander: Est-ce que vos utilisateurs attendent l'application pour ouvrir à la caméra? La première fois qu'ils l'utilisent sera-t-il évident pour eux pourquoi la caméra est apparue? À moins que votre application ne soit nommée "Prendre une photo" ou quelque chose d'aussi évocateur, sauter directement la caméra peut causer de la confusion. – TechZen

+1

En outre, la méthode n'est pas liée aux actions. La liaison a une signification spécifique dans l'API Apple et son importance à long terme pour ne pas la confondre. Si vous pensez que la méthode est liée aux boutons, vous êtes dans un monde de confusion. Au lieu de cela, les boutons envoient un message à l'objet sous la forme d'appel de méthode d'action. L'action dans IB indique simplement au bouton quel objet cibler et quel message envoyer. – TechZen

Répondre

3

EDIT:

Comme par this SO question vous devriez effectivement le placer dans viewWillAppear ou viewDidAppear


Ajouter une méthode similaire à la méthode ApplicationDidFinishLaunching dans le délégué de l'application.

pourrait être préférable de placer l'appel dans le ViewDidLoad de votre contrôleur de vue racine

+0

Comme ça? [self getPhoto]; Ou comment? –

+0

Eh bien, vous ne voulez pas utiliser l'expéditeur du délégué de l'application. Vous devrez peut-être modifier votre méthode existante ou en lancer une similaire puisque l'expéditeur dans ce cas sera le délégué de l'application – conorgriffin

+0

voir edit et la réponse de jm ci-dessous. Dans ce cas, la méthode viewDidLoad est probablement plus appropriée. – conorgriffin