ÏîÄ¿ÐèÇó
дһ¸öiPhoneÓ¦ÓóÌÐò£¬ÒªÇó¿ÉÒÔÊäÈëÃû×Ö£¬µã»÷°´Å¥ºó£¬»áÏÔʾһ¶ÎÎÄ×ÖÏòÊäÈëµÄÃû×Ö´òÕкô£¬ÀýÈçÊäÈë¡°±¦Óñ¡±£¬ÏÔʾ¡°ÄãºÃ£¬±¦Óñ!¡±
ÐèÇó·ÖÎö
ÕâÊÇÒ»¸öºÜ¼òµ¥µÄÓ¦ÓóÌÐò£¬°üº¬Ò»¸öÎı¾ÊäÈë¿ò£¬Ò»¸öÎı¾ÏÔʾ¿ò£¬Ò»¸ö°´Å¥¡£ÊäÈëÃû×Öµ½Îı¾ÊäÈë¿ò£¬ÔÙµã»÷°´Å¥£¬ÕâʱÎı¾ÏÔʾ¿òµÄÎÄ×־ͻá±ä³É¡°ÄãºÃ£¬<Ãû×Ö>!¡±¡£µ«ÊÇҪעÒ⣬Èç¹ûÓû§ÊäÈëΪ¿Õ£¬ÒªÓо¯¸æÌáʾÓû§ÖØÐÂÊäÈ룻Èç¹ûÓû§ÊäÈëÎÄ×ÖÌ«³¤£¬³¬¹ý16¸ö×Ö·û£¬Òª×Ô¶¯½Ø¶Ï¡£
²úÆ·Éè¼Æ
¸ù¾ÝÏîÄ¿ÐèÇ󣬻³öÏàÓ¦µÄ²úÆ·ÔÐÍͼ£º
³õʼ״̬
³õʼʱ£¬Îı¾ÊäÈë¿òΪ¿Õ£¬µ«ÊÇÏÔʾˮӡ£¬ÌáÐÑÓû§¿ÉÒÔÊäÈëÐÕÃû¡£Îı¾ÏÔʾ¿òÎÄ×ÖΪ¿Õ¡£

ÊäÈëÃû×Ö²¢µã»÷°´Å¥ºó
ÊäÈëÃû×Ö£¬²¢µã»÷°´Å¥ºó£¬ÆÁÄ»ÖмäÏÔʾÎÄ×Ö£º¡°ÄúºÃ£¬<Ãû×Ö>!¡±¡£

ûÓÐÊäÈëÃû×ֵľ¯¸æÌáʾ
Èç¹ûûÓÐÊäÈëÃû×Ö£¬µã»÷°´Å¥ºóµ¯³ö¾¯¸æ´°¿Ú£¬ÌáÐÑÓû§ÊäÈëÃû×Ö¡£

ϵͳ·ÖÎö
ÕâÊÇÒ»¸ö·Ç³£¼òµ¥µÄÓ¦ÓóÌÐò£¬ÊµÏÖ˼·²»²»Ë㸴ÔÓ£º
1.Ò»¸öÎı¾ÊäÈë¿ò£¬ÓÃÀ´ÊäÈëÎÄ×Ö£¬ÐèÒªÏÞÖÆ×î´ó×Ö·û³¤¶ÈΪ16¸ö×Ö·û£¬ÊäÈë¿òûÓÐÄÚÈÝʱ£¬ÏÔʾˮӡÎÄ×Ö¡£UITextField¿Ø¼þÕýºÃ¿ÉÒÔÂú×ãÐèÇó¡£
2.Ò»¸öÎı¾ÏÔʾ¿ò£¬ÓÃÀ´ÏÔʾ×îÖÕÉú³ÉµÄÎÄ×Ö¡£Ê¹ÓÃUILabel¿Ø¼þ¼´¿ÉÂú×ãÐèÇó¡£
3.Ò»¸ö°´Å¥£¬µã»÷ºó£¬»ñÈ¡Îı¾ÊäÈë¿òÎÄ×ÖÄÚÈÝ£¬Éú³É¡°ÄãºÃ£¬<Ãû×Ö>!¡±ÎÄ×Ö£¬²¢ÏÔʾÔÚÎı¾ÏÔʾ¿òÖС£Èç¹ûµã»÷ʱÎı¾ÊäÈë¿òÎÄ×ÖΪ¿Õ£¬µ¯³ö¾¯¸æÌáʾ¿ò¡£
ͬʱ£¬Õâ¸öÓ¦ÓóÌÐòÔÚ¿ª·¢¹ý³ÌÖУ¬ÐèÒªÓ¦Óõ½iPhone¿ª·¢ÖÐһЩ³£ÓõÄÉè¼ÆÄ£Ê½£º
1.ίÍÐ(Delegate)
2.Ä£ÐÍ ÊÓͼ ¿ØÖÆÆ÷(MVC)
3.Ä¿±ê - ¶¯×÷(Target-Action)
ίÍÐ(Delegate)
ίÍÐģʽÊÇÒ»¸ö¶ÔÏóÖÜÆÚÐÔµØÏò±»Ö¸¶¨ÎªÆäίÍеÄÁíÒ»¸ö¶ÔÏó·¢ËÍÏûÏ¢£¬ÏòÆäÇëÇóÊäÈë»òÕß֪ͨij¼þÊÂÇéÕýÔÚ·¢Éú¡£¸Ãģʽ¿ÉÌæ»»Àà¼Ì³ÐÀ´¶Ô¿É¸´ÓöÔÏóµÄ¹¦ÄܽøÐÐÀ©Õ¹¡£
ÔÚ±¾ÏîÄ¿ÖУ¬Ó¦ÓóÌÐò¶ÔÏó»áÏòÆäίÍз¢ËÍÏûÏ¢£¬Í¨ÖªËüÖ÷ÒªµÄÆô¶¯Àý³ÌÒѾÍê³É²¢ÇÒ¶¨ÖƵÄÅäÖÿɿªÊ¼Ö´ÐС£ÎªÁ˽¨Á¢²¢¹ÜÀíÊÓͼ£¬Î¯Íлᴴ½¨Ò»¸ö¿ØÖÆÆ÷ʵÀý¡£ÁíÍ⣬µ±Óû§µã»÷Return°´¼üºó£¬Îı¾×Ö¶ÎÒ²»á֪ͨËüµÄίÍУ¨¼´Ëù´´½¨µÄ¿ØÖÆÆ÷¶ÔÏó£©
ίÍз½·¨Í¨³£»á¼¯ÖÐÔÚÒ»ÆðÐγÉÒ»·ÝÐÒé¡£ Ò»·ÝÐÒé»ù±¾ÉϾÍÊÇÒ»¸ö·½·¨µÄÁÐ±í¡£Èç¹ûÒ»¸öÀà×ñÑij¸öÐÒ飬ÔòËüÒª±£Ö¤ÊµÏÖÐÒéËùÒªÇóµÄ·½·¨£¨ÓÐЩ·½·¨¿ÉÑ¡ÔñʵÏÖÓë·ñ£©¡£Î¯ÍÐÐÒ鹿¶¨ÁËÒ»¸ö¶ÔÏó¿ÉÒÔ·¢Ë͸øÎ¯ÍеÄËùÓÐÏûÏ¢¡£ÀýÈç³£¼ûµÄÓУºUITextFieldDelegate,
UIApplicationDelegate, UIScrollViewDelegate, UITableViewDelegate,
UIWebViewDelegate¡£

Ä£ÐÍ ÊÓͼ ¿ØÖÆÆ÷(MVC)
MVCģʽ½«Ó¦ÓóÌÐòÖеĶÔÏóÉ趨ΪÈýÖÖ½ÇÉ«£ºÄ£ÐͽÇÉ«£¨Model£©¡¢ÊÓͼ½ÇÉ«£¨View£©ºÍ¿ØÖÆÆ÷½ÇÉ«£¨Controller£©¡£
Ä£ÐͶÔÏó(Model)±íʾÊý¾Ý¡£ÀýÈ磬ÔÚiPhone×Ô´øµÄͨѶ¼ӦÓÃÖУ¬ÁªÏµÈËÊÇÄ£ÐͶÔÏó£¬ÔÚÒ»¸ö»æ»Ó¦ÓÃÖУ¬Ô²ÐΡ¢¾ØÐÎÊÇÄ£ÐͶÔÏó¡£
±¾ÏîÄ¿µÄÓ¦ÓóÌÐòÓõ½µÄÊý¾Ý·Ç³£¼òµ¥¡ª¡ª×Ö·û´®£¬²¢ÇÒ¸Ã×Ö·û´®Ö»ÓÐÔÚ°´Å¥µã»÷µÄ·½·¨ÖÐÓõ½¡£Æäʵ»»Ò»ÖֽǶÈÀ´Ëµ£¬×Ö·û´®Ò²ÊÇÒ»ÖÖ×î¼òµ¥µÄÄ£ÐͶÔÏó£¬ÔÚÆäËûµÄÓ¦ÓóÌÐòÖУ¬Ä£ÐͶÔÏ󽫻á¸ü¼Ó¸´ÔÓ£¬²¢ÇÒÄ£ÐͶÔÏóÔÚ³ÌÐòÖÐÎÞ´¦²»ÔÚ£¬¿ÉÒÔÔÚ¶à¸öµØ·½½øÐзÃÎÊ¡£
ÊÓͼ¶ÔÏó(View)¸ºÔðÏÔʾÊý¾Ý£¬±ÈÈçUILabel¿ÉÒÔÏÔʾÎı¾¡¢UIImageView¿ÉÒÔÏÔʾͼƬ£¬Ò²»áÖ§³ÖÓû§¶ÔÊý¾ÝµÄ±à¼²Ù×÷£¬ÀýÈçUITextField¿ÉÒÔÖ§³ÖÓû§ÊäÈë¡£
ÔÚÎÒÃǽÓÏÂÀ´Òª´´½¨µÄÏîÄ¿ÖУ¬ÐèÒªÒ»¸öÖ÷ÊÓͼÀ´°üº¬ÆäËü¼¸¸öÊÓͼ¡ª¡ªÊ×ÏÈÊÇÒ»¸öÎı¾ÊäÈë¿ò£¬ËüÓÃÓÚ²¶»ñÓû§ÊäÈëÐÅÏ¢£»È»ºóÊÇÒ»¸öÎı¾ÏÔʾ¿ò£¬ËüÓÃÓÚÏÔʾÎı¾£¬¶øÎı¾ÄÚÈÝÔòÊÇ»ùÓÚÓû§µÄÊäÈ룻ÁíÍ⻹ÐèÒªÒ»¸ö°´¼ü£¬ÈÃÓû§¿ÉÒÔµã»÷Ëü£¬µã»÷ºó֪ͨÎı¾×ֶθüС£
¿ØÖÆÆ÷¶ÔÏó(Controller)½éÓÚÄ£ÐͺÍÊÓͼ֮¼ä¡£
ÔÚÎÒÃǽÓÏÂÀ´Òª´´½¨µÄÏîÄ¿ÖУ¬µ±Óû§µã»÷°´Å¥ºó£¬´¥·¢¸üвÙ×÷£¬¿ØÖÆÆ÷¶ÔÏ󽫻á´ÓÎı¾ÊäÈë¿òÖлñÈ¡ÊäÈëµÄÎÄ×ÖÄÚÈÝ£¬²¢°ÑÎÄ×Ö´æ·ÅÔÚÒ»¸ö×Ö·û´®ÖУ¬È»ºóÔÙ°ÑÎı¾ÏÔʾ¿òµÄÄÚÈݸüгɸñʽ»¯ºÃµÄÄÚÈÝ¡£

½áºÏMVCģʽ£¬¶ÔÓÚ±¾ÏîÄ¿µÄÖ÷ÒªÁ÷³Ì£¬Õû¸öÈçͼËùʾ£º

Ä¿±ê - ¶¯×÷(Target - Action)
Ä¿±ê-¶¯×÷»úÖÆ£¬ÔÊÐíÒ»¸ö¿Ø¼þ¶ÔÏó(ÀýÈç°´¼ü»ò»¬¶¯Ìõ) ÏòÁíÍâÒ»¸ö¶ÔÏó·¢ËÍÒ»ÌõÏûÏ¢£¨¼´¶¯×÷£©£¬ÒÔÖ®×÷Ϊ¶Ôij¸öÓû§Ê¼þ£¨ÀýÈçÒ»¸öµã»÷ʼþ£©µÄÏìÓ¦¡£½ÓÊÕµ½ÏûÏ¢µÄ¶ÔÏóÔò¿ÉÒÔ¶ÔÏûÏ¢½øÐÐÏìÓ¦£¬²¢Õë¶ÔÒµÎñÒªÇó×ö³ö´¦Àí¡£
ÔÚ±¾ÏîÄ¿ÖУ¬µ±µã»÷°´Å¥Ê±£¬Ëü»á֪ͨ¿ØÖÆÆ÷È¥»ñÈ¡Îı¾ÊäÈë¿òÄÚÈÝ£¬²¢¸ù¾ÝÊäÈëÄÚÈݸüÐÂÎı¾ÏÔʾ¿ò¡£

¿ª·¢
´´½¨ÏîÄ¿
ÎÒÃǽ«¿ªÊ¼Ê¹ÓÃXcodeÀ´´´½¨ÏîÄ¿£¬Æô¶¯Xcode£¨È±Ê¡Çé¿öÏ£¬XcodeλÓÚ
/Developer/Applications ÀïÃæ£©£¬È»ºóÑ¡ÔñFile > New > New
Project£¬ÕâÑù¾Í¿ÉÒÔ´´½¨Ò»¸öÐµĹ¤³Ì¡£Ó¦¸Ã¿ÉÒÔ¿´µ½Ò»¸öеĴ°¿Ú£¬ÈçÏÂͼËùʾ£º

Ñ¡ÖÐ Window-Based Application ²¢µã»÷ Next °´Å¥£¬ÊäÈëProduct Name(ÏîÄ¿Ãû)£ºSayHello£¬ÔÚCompany
IdentifierÄÇ£¬¿ÉÒÔÊäÈ빫˾ÃûΨһ±êʶ¡£

µã»÷Next£¬Ñ¡ÔñÏîÄ¿´æ´¢Î»Öã¬×îºóµã»÷Create°´Å¥¡£
Íê³ÉÉÏÊö²½Öèºó£¬½«¿´µ½ÈçϵÄÐÂÏîÄ¿´°¿Ú£º

ÔÚ½øÐÐÏÂÒ»²½¹¤×÷֮ǰ£¬¿ÉÒÔÏȱàÒëÔËÐÐһϳÌÐò£¬ÕâÑù¾Í¿ÉÒÔͨ¹ýÄ£ÄâÆ÷¿´µ½³ÌÐòÔËÐкóµÄÑù×Ó¡£ÔÚXcodeµÄ²Ëµ¥ÖÐÑ¡Ôñ
Product > Run »òÕßµã»÷×óÉϽǹ¤¾ßÀ¸É쵀 Run °´Å¥£¬iPhoneÄ£ÄâÆ÷Ó¦¸Ã»á×Ô¶¯Æô¶¯¡£µ±Ó¦ÓóÌÐòÆô¶¯ºó£¬¿ÉÒÔ¿´µ½Ò»¸ö°×É«ÆÁÄ»¡£
Ó¦ÓóÌÐòÆô¶¯¹ý³Ì½âÎö
ͨ¹ýXcodeµÄÄ£°å´´½¨ÏîĿʱ£¬Ä£°åÒѾ°ïÖúÉèÖúÃÁËÓ¦ÓóÌÐò»ù±¾³ÌÐò»·¾³£¬Ëü»á°ïÖú´´½¨Ò»¸öÓ¦ÓóÌÐò¶ÔÏ󣬽«Ó¦ÓóÌÐòºÍ´°¿ÚÁ¬½ÓÆðÀ´£¬½¨Á¢Ò»¸öÔËÐл·¾³¡£Õû¸öÆô¶¯¹ý³Ì´ÓUIApplicationMainº¯Êý¿ªÊ¼£¬ÈçÏÂͼËùʾ£º

main.mÎļþÖеÄmainº¯Êý»áµ÷ÓÃUIApplicationMainº¯Êý:
int retVal = UIApplicationMain(argc, argv, nil, nil); |
¸Ãº¯Êý½«»á´´½¨Ò»¸öUIApplicaionÀàµÄʵÀý¡£Í¬Ê±Ëü»áËÑË÷Ó¦ÓóÌÐòµÄInfo.plistÊôÐÔÁбíÎļþ¡£
Info.plistÎļþÊÇÒ»²¿×ֵ䣬ËüÖ÷Òª°üº¬ÖîÈçÓ¦ÓóÌÐòÃû³Æ¡¢Í¼±êÕâÑùµÄÐÅÏ¢£¬ËüÒ²°üº¬Ó¦ÓóÌÐò¶ÔÏóÓ¦¸Ã¼ÓÔØµÄnib
Îļþ£¨ËäÈ»¸ÃÎļþµÄÀ©Õ¹ÃûΪ¡°xib¡±£¬µ«ÊÇÎÒÃÇϰ¹ß³ÆÖ®Îª¡°nib Îļþ¡±£©µÄÃû³Æ¡£NibÎļþÖ÷ÒªÓÐÓû§½çÃæµÄÐÅÏ¢¡£±¾ÏîÄ¿µÄInfo.plistÎļþ¾ßÓÐÏÂÃæµÄÄÚÈÝ£º

ÊõÓ ËäÈ»Interface BuilderÎĵµµÄÀ©Õ¹Ãû¿ÉÄÜÊÇ¡°.xib¡±
£¬µ«ÀúÊ·ÉÏ£¬ÆäÀ©Õ¹ÃûÊÇ¡°.nib¡±£¨¡°NextStep Interface Builder¡±µÄÊ××ÖĸËõд£©£¬Òò´ËÈËÃǾÍË×³ÆÆäΪ¡°NibÎļþ¡±¡£
Õâ±íÃ÷Ó¦ÓóÌÐòÆô¶¯Ê±½«»á¼ÓÔØMainWindow nibÎļþ¡£ÔÚXcodeÖпÉÒÔµ¥»÷MainWindow.xib½øÐв鿴£¨×¢ÒâÔÚXcode4ÖÐÒѾ²»ÐèҪͨ¹ýInterface
BuilderÀ´´ò¿ªnibÎļþ£¬¿ÉÒÔÖ±½ÓÔÚXcode¶ÔnibÎļþ½øÐв鿴ºÍ±à¼£©£º

MainWindow NibÎĵµ°üº¬4¸ö¶ÔÏó£º
1.File's Owner£¬ÎļþÓµÓÐÕß´úÀí¶ÔÏó£¬ÔÚÕâÀïMainWindowµÄÓµÓÐÕß¶ÔÏóʱUIApplicationʵÀý
2.First Responder£¬µÚÒ»ÏìÓ¦Õß´úÀí¶ÔÏó£¬ÔÚ±¾ÏîÄ¿ÖУ¬Ã»ÓÐʹÓõ½
3.Say Hello App Delegate£¬SayHelloAppDelegateµÄʵÀý£¬Ò²¾ÍÊÇÓ¦ÓóÌÐòµÄίÍÐ
4.Window£¬Ò»¸ö´°¿Ú¶ÔÏó¡£ËüĬÈÏÊǰ×É«±³¾°£¬³ÌÐòÆô¶¯Ê±¿´µ½µÄ¾ÍÊÇËü
Ó¦ÓóÌÐò¶ÔÏóÔÚÍê³ÉÆô¶¯ºó£¬»áÏòίÍз¢ËÍapplicationDidFinishLaunching:ÏûÏ¢£¬Í¨Öª³ÌÐòÒѾÆô¶¯³É¹¦ÁË£¬ÕâÑùÎÒÃÇ¿ÉÒÔÔÚÊÕµ½Õâ¸öÏûÏ¢ºó¸ù¾ÝÐèÒª½øÐÐһЩ²Ù×÷¡£ÏÂͼÊÇÒ»¸ö¼ò»¯µÄiPhoneÓ¦ÓóÌÐòÉúÃüÖÜÆÚͼ£¬¼òҪչʾÁË·¢ÉúÔÚÓ¦ÓóÌÐòÆô¶¯µ½Í˳öµÄ¹ý³Ì¡£

ÕâÑù£¬ÎÒÃÇ»ù±¾Á˽âÁËÈçºÎ´´½¨Ò»¸öÏîÄ¿£¬ÒÔ¼°Ò»¸öÓ¦ÓóÌÐòµÄÆô¶¯¹ý³Ì£¬½ÓÏÂÀ´£¬ÎÒÃÇÐèÒª´´½¨Ò»¸öÊÓͼ¿ØÖÆÆ÷(UIViewController)ʵÀý£¬ÓÃÀ´ÊµÏÖÏîÄ¿¹¦ÄÜ¡£
Ìí¼ÓÊÓͼ¿ØÖÆÆ÷(UIViewController)
Ìí¼ÓÊÓͼ¿ØÖÆÆ÷Îļþ
ÔÚiPhoneÓ¦ÓóÌÐòÖУ¬ÊÓͼ¿ØÖÆÆ÷(UIViewController)ÆðןËÐÄ×÷Ó᣹ËÃû˼Ò壬ÊÓͼ¿ØÖÆÆ÷¸ºÔð¹ÜÀí¿ØÖÆÊÓͼ¡£ÔÚiPhoneÉÏ£¬ËüÃÇÒ²°ïÖú½øÐе¼º½ºÍÄÚ´æ¹ÜÀí¡£
Ñ¡ÖÐXcodeÏîÄ¿¹ÜÀíÆ÷ÀïµÄÏîÄ¿£¨¼´SayHelloÏîÄ¿£¬Î»ÓÚGroups and FilesÁбíµÄ¶¥²¿£©»òÕßÑ¡ÖÐSayHelloÎļþ¼Ð¡ª¡ªÐÂÎļþÔÚÌí¼Óʱ»á±»¼ÓÈëµ½µ±Ç°Ñ¡ÔñµÄλÖá£
Ñ¡Öкó£¬ÔÚXcode²Ëµ¥ÖÐÑ¡Ôñ File > New > New File£¬Ò²¿ÉÒÔÔÚÑ¡ÖеÄÎļþ¼ÐÉÏÃæµãÓÒ¼ü£¬Ñ¡Ôñ
New File¡£

ÔÚNew File´°¿ÚÖУ¬ÇëÑ¡ÔñCocoa Touch£¬È»ºóÑ¡ÔñUIViewController subclass¡£

µã»÷ Next °´Å¥£¬ÔÚOptions´°¿Ú£¬Çë¹´Ñ¡ ¡°With XIB for user interface¡±¸´Ñ¡¿ò¡£Ñ¡ÖÐ
¡°With XIB for user interface¡±ºó£¬XcodeÔÚ´´½¨ÊÓͼ¿ØÖÆÆ÷µÄͬʱ£¬»áΪÆä´´½¨Ò»·ÝnibÎļþ£¬²¢½«¸ÃÎļþÌí¼Óµ½ÏîÄ¿ÖС£

µã»÷Next°´Å¥£¬ÔÚÆäºó³öÏֵı£´æÎļþ´°¿ÚÖУ¬ÎªÎļþÆð¸öÃû×Ö£¬ÀýÈçRootTimelineViewController£¬²¢Ñ¡ÔñÎļþ´æ´¢µÄλÖã¬ÈçÏÂËùʾ£º

µã»÷ Save£¬Îļþ»á±»Ìí¼Óµ½ÏîÄ¿ÖС£½ÓÏÂÀ´£¬ÎÒÃǽ«´´½¨¿ØÖÆÆ÷ÀàµÄʵÀý¡£
´´½¨ÊÓͼ¿ØÖÆÆ÷ʵÀý
ÏÖÔÚ£¬ÎÒÃÇÓÐÁËÊÓͼ¿ØÖÆÆ÷µÄÀàºÍnibÎļþ£¬µ«ÒªÔÚÓ¦ÓóÌÐò´úÀíÖÐʹÓÃËü£¬»¹±ØÐë´´½¨ÀàµÄʵÀý£¬²¢ÇÒ½«ÊµÀý´æ´¢ÔÚ±äÁ¿ÖУ¬ÒÔ±ã²Ù×÷Ëü¡£
ÔÚÓ¦ÓóÌÐòίÍÐÀàµÄÍ·Îļþ(¼´SayHelloAppDelegate.h)ÖÐÖ´ÐÐÏÂÊö²Ù×÷£º
ÔÚÒ»¸öÀàÖзÃÎÊÁíÒ»¸öÀ࣬Ê×ÏÈÐèÒªÒýÓñ»·ÃÎÊÀàµÄÍ·Îļþ¡£ËùÒÔÎÒÃÇÏÈÔÚÓ¦ÓóÌÐòίÍÐÍ·Îļþ(SayHelloAppDelegate.h)µÄ½Ó¿ÚÉùÃ÷Ç°Ãæ-¼´SayHelloAppDelegateÉùÃ÷Ç°ÃæÒýÓÃÊÓͼ¿ØÖÆÆ÷(RootViewController)µÄÍ·Îļþ£º
#import "RootViewController.h" |
È»ºóÔÚÍ·Îļþ´óÀ¨ºÅÖ®¼äÌí¼ÓÏÂÃæµÄ´úÂ룬ÕâÊÇΪÁËÏòÓ¦ÓóÌÐòίÍÐÌí¼ÓÒ»¸öʵÀý±äÁ¿£º
RootViewController *viewController; |
ÔÚ´óÀ¨ºÅÖ®ºó @end֮ǰÌí¼ÓÏÂÃæµÄÊôÐÔÉùÃ÷£º
@property (nonatomic, retain) RootViewController *viewController; |
ÔÚÍ·ÎļþÖÐÌí¼ÓÍêÏàÓ¦±äÁ¿ºÍÊôÐÔÉêÃ÷ºó£¬ÐèÒªÔÚ¶ÔÓ¦µÄʵÏÖÎļþÖУ¬ºÏ³ÉÊôÐԵĴæÈ¡·½·¨£¬ÔÚdealloc·½·¨ÖÐÊÍ·ÅÊÓͼ¿ØÖÆÆ÷µÄʵÀý¡£
ÔÚÓ¦ÓóÌÐòίÍÐÀàµÄʵÏÖÎļþ(¼´SayHelloAppDelegate.m)ÖÐÖ´ÐÐÏÂÊö²Ù×÷£º
ÔÚÀàµÄ @implementation´úÂë¿éÖÐ֪ͨ±àÒëÆ÷ΪÊÓͼ¿ØÖÆÆ÷ºÏ³É´æÈ¡·½·¨£º
@synthesize viewController; |
ÔÚdealloc·½·¨Æðʼ´¦ÊÍ·ÅÊÓͼ¿ØÖÆÆ÷£º
[viewController release]; |
ÎÒÃÇÒѾ°ÑÊÓͼ¿ØÖÆÆ÷ÊôÐÔÌí¼Óµ½Ó¦ÓóÌÐòµÄίÍУ¬ÏÖÔÚÐèҪʵ¼Ê´´½¨Ò»¸öÊÓͼ¿ØÖÆÆ÷ʵÀý£¬²¢½«ÆäÉèÖÃΪÊôÐÔµÄÖµ¡£
ÔÚÓ¦ÓóÌÐòίÍÐÀàʵÏÖÎļþ£¨¼´SayHelloWorldAppDelegate.mÎļþ£©ÖеÄapplicationDidFinishLaunching:
·½·¨¿ªÍ·Ìí¼ÓÈçÏ´úÂ룬ÕâЩ´úÂëÓÃÓÚ´´½¨Ò»¸öRootViewControllerʵÀý£º
RootViewController *controller = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
self.viewController = controller;
[controller release]; |
Õâ¶Î´úÂëµÄ×÷ÓÃÈçÏ£º
´´½¨RootViewControllerÕâ¸öÊÓͼ¿ØÖÆÆ÷µÄʵÀý¡£Ê¹ÓÃalloc·½·¨´´½¨Ò»¸öÊÓͼ¿ØÖÆÆ÷£¬È»ºóÓÃinitWithNibName:bundle:·½·¨¶ÔÆä½øÐгõʼ»¯¡£init·½·¨ÏÈÖ¸¶¨¿ØÖÆÆ÷Ó¦¼ÓÔØµÄnibÎļþ£¬È»ºóÖ¸¶¨ÔÚÄĸö³ÌÐò°üÖпÉÕÒµ½¸ÃÎļþ¡£³ÌÐò°üÊÇÎļþϵͳij¸öλÖõijéÏ󣬸ÃλÖôæ·ÅÁËÓ¦ÓóÌÐò½«»áÓõ½µÄ´úÂëºÍ×ÊÔ´¡£
ʹÓÃÊôÐԵĴæÈ¡·½·¨£¬½«´´½¨ºÃµÄÊÓͼ¿ØÖÆÆ÷ʵÀýÉèÖÃΪviewControllerÊôÐÔ±äÁ¿µÄÖµ
¸ù¾ÝÄÚ´æ¹ÜÀí¹æÔòÊÍ·ÅÊÓͼ¿ØÖÆÆ÷
ÊÓͼ¿ØÖÆÆ÷ÓÃÀ´ÅäÖú͹ÜÀíÔÚÓ¦ÓóÌÐòÖп´µ½µÄÊÓͼ£¬Ã¿Ò»¸öÊÓͼҲ¶ÔÓ¦ÓÐÒ»¸öÊÓͼ¿ØÖÆÆ÷À´¹ÜÀí¡£´°Ì壨window£©ÓÐÒ»¸ö¸ùÊÓͼ¿ØÖÆÆ÷¡ª¡ªÕâ¸öÊÓͼ¿ØÖÆÆ÷¸ºÔðÅäÖõ±´°ÌåÏÔʾʱ×îÏÈÏÔʾµÄÊÓͼ¡£ÒªÈÃÄãµÄÊÓͼ¿ØÖÆÆ÷µÄÄÚÈÝÏÔʾÔÚ´°ÌåÖУ¬ÐèҪȥÉèÖô°ÌåµÄ¸ùÊÓͼ¿ØÖÆÆ÷ΪÄãµÄÊÓͼ¿ØÖÆÆ÷¡£
ËùÒÔÎÒÃǵÄÏîÄ¿ÖУ¬ÔÚÉÏÃæ´´½¨ÊÓͼ¿ØÖÆÆ÷ʵÀý´úÂëºóÃæÔÙÌí¼ÓÒ»ÐдúÂ룬À´ÉèÖô°ÌåµÄ¸ùÊÓͼ¿ØÖÆÆ÷ΪÎÒÃÇÐÂÌí¼ÓµÄÊÓͼ¿ØÖÆÆ÷£º
self.window.rootViewController = controller; |
×îºóÒ»ÐÐÀ´×ÔÓÚXcodeÌṩµÄÄ£°å×Ô¶¯Éú³ÉµÄ´úÂ룺
[self.window makeKeyAndVisible]; |
ÕâÐдúÂë»áÈðüº¬ÁËÊÓͼ¿ØÖÆÆ÷ÊÓͼµÄWindow´°¿ÚÏÔʾÔÚÆÁÄ»ÉÏ¡£
±¾ÕÂÍêÕû´úÂ룬SayHelloAppDelegate.hÎļþ£º
#import
#import "RootViewController.h"
@interface SayHelloAppDelegate : NSObject {
RootViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) RootViewController *viewController;
@end
|
SayHelloAppDelegate.mÎļþ£º
#import "SayHelloAppDelegate.h"
@implementation SayHelloAppDelegate
@synthesize window=_window;
@synthesize viewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
RootViewController *controller = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
self.viewController = controller;
[controller release];
self.window.rootViewController = controller;
[self.window makeKeyAndVisible];
return YES;
}
- (void)dealloc
{
[_window release];
[viewController release];
[super dealloc];
}
@end |
²âÊÔÔËÐÐ
ÔÚXcodeµÄ²Ëµ¥ÖÐÑ¡Ôñ Product > Run »òÕßµã»÷×óÉϽǹ¤¾ßÀ¸É쵀 Run °´Å¥£¬iPhoneÄ£ÄâÆ÷Ó¦¸Ã»á×Ô¶¯Æô¶¯¡£µ±Ó¦ÓóÌÐòÆô¶¯ºó£¬»¹ÊÇ¿´µ½Ò»¸ö°×É«ÆÁÄ»£¬²»¹ýµÚÒ»´Î¿´µ½µÄ°×É«ÆÁÄ»£¬ÊÇÓ¦ÓóÌÐò´úÀíÖеÄWindow£¬¶øÕâ´Î¿´µ½µÄ°×É«ÆÁÄ»£¬ÊÇÊÓͼ¿ØÖÆÆ÷RootViewControllerÖеÄÊÓͼ¡£
ÏÂÒ»²½£¬ÎÒÃǽ«¿ªÊ¼¶Ô½çÃæ½øÐб༡£
±à¼NibÎļþ
ÔÚiPhone¿ª·¢ÖУ¬Ò»°ã¶¼»áÓÃNIBÎļþÀ´À´¸ºÔð½çÃæÏÔʾ£¬Ò²¾ÍÊÇMVCÄ£ÐÍÀïÃæµÄÊÓͼ¶ÔÏ󣬶øNIBÎļþÖ»°üº¬Óû§½çÃæÔªËØ£¬²»°üº¬ÈκÎÔ´Â룬ÄÇôÔõôÈÃÊÓͼ¶ÔÏóºÍÊÓͼ¿ØÖÆÆ÷¹ØÁªÆðÀ´ÄØ£¿Õâ¾ÍÐèÒªÓõ½Á½¸ö·Ç³£ÖØÒªµÄ¸ÅÄ²å×ù±äÁ¿£¨outlet£©ºÍÎļþÓµÓÐÕß´úÀí¶ÔÏó£¨File's
Owner£©¡£
ÊÓͼ¿ØÖÆÆ÷µÄÊÓͼºÍNibÎļþ
ÊÓͼ¿ØÖÆÆ÷Ö÷ÒªµÄÖ°Ôð¾ÍÊÇÅäÖú͹ÜÀíÓ¦ÓóÌÐòÖÐËùÓеÄÊÓͼ£¬Ò»°ãÀ´Ëµ£¬ÊÓͼ¿ØÖÆÆ÷µÄÊÓͼÊÇ·ÅÔÚÒ»¸öNibÎļþÖУ¬µ±È»Ò²¿ÉÒÔ²»ÐèÒªNibÎļþ£¬Í¨¹ý³ÌÐò´´½¨ÊÓͼ£¬µäÐ͵ÄÈçUITableViewControllerÕâÑùµÄÊÓͼ¿ØÖÆÆ÷£¬¾Í¿ÉÒÔ²»ÐèÒªNibÎļþ¡£ÔÚ´´½¨ÊÓͼ¿ØÖÆÆ÷ʵÀýʱ£¬ÆäÖÐÒ»¸öÖ÷ÒªµÄ¹¹Ô캯Êý
initWithNibName:bundle: µÄµÚÒ»¸ö²ÎÊý¾ÍÊÇÊÓͼ¿ØÖÆÆ÷¶ÔÓ¦µÄNibÎļþµÄÃû×Ö¡£ÊÓͼ¿ØÖÆÆ÷ÔÚÆä
loadView ·½·¨ÖмÓÔØËüµÄNibÎļþ¡£Èç¹ûÊÇʹÓà initWithNibName:bundle:
¹¹Ô캯ÊýÉú³ÉµÄʵÀý£¬²¢ÇÒÄãÏëÔÚÊÓͼ¼ÓÔØÍê³Éºó½øÐжîÍâµÄÉèÖã¬Ö»ÒªÖØÐ´ÊÓͼ¿ØÖÆÆ÷µÄ viewDidLoad
·½·¨¾ÍºÃÁË¡£
ÔÚXcodeÖеã»÷´ò¿ªÊÓͼ¿ØÖÆÆ÷µÄNibÎļþ£¨¼´RootViewController.xibÎļþ£©£¬ÔÚXcodeÖм´¿ÉÖ±½Ó²é¿´ºÍ±à¼¡£Îļþ°üº¬Èý¸ö¶ÔÏó£¬ÎļþÓµÓÐÕß´úÀí£¨File's
Owner£©£¬µÚÒ»ÏìÓ¦Õß´úÀí£¨First Responder£©ÒÔ¼°Ò»¸öÊÓͼ£¨View£©¡£ÊÓͼ£¨View£©ÊÇÊÓͼ¿ØÖÆÆ÷µÄÖ÷ÊÓͼ£¬ÔÚÖ÷ÊÓͼÖл¹¿ÉÒÔÌí¼ÓÈô¸É×ÓÊÓͼ¡£ÎļþÓµÓÐÕß´úÀí(File's
Owner)´ú±íNibÎļþ¶ÔÓ¦µÄÊÓͼ¿ØÖÆÆ÷Àà¡£Àí½âÎļþËùÓÐÕß´úÀíµÄ½ÇÉ«£¬ÒÔ¼°ÈçºÎ½¨Á¢ÎļþËùÓÐÕߺÍNibÎļþÖнçÃæÔªËØÖ®¼äµÄÁ¬½Ó£¬ÊǷdz£ÖØÒªµÄ¡£

СÌùÊ¿£º ÔÚXcodeÖбà¼NibÎļþʱ£¬¿ÉÒÔͨ¹ýµã»÷ÓÒÉϽǹ¤¾ßÀ¸°´Å¥ ÏÔʾÒþ²ØÏàÓ¦Ãæ°å£¬·½±ã¶Ô½çÃæ±à¼ºÍÊôÐÔÉèÖá£
ÎļþÓµÓÐÕß(File's Owner)
ÔÚÒ»¸öNibÎļþÖУ¬ÎļþÓµÓÐÕß¶ÔÏóÊÇÆäÖÐ×îÖØÒªµÄ¶ÔÏóÖ®Ò»£¬ÒòΪÕýÊÇͨ¹ýËü£¬À´½¨Á¢ÆðÓ¦ÓóÌÐò´úÂëºÍNib½çÃæÎļþÖжÔÏóÖ®¼äµÄÁ¬½Ó£¬¾ßÌåÀ´Ëµ£¬Ëü¾ÍÊǶÔÓ¦NibÎļþµÄÊÓͼ¿ØÖÆÆ÷¶ÔÏó¡£ÒÔ±¾ÏîĿΪÀý£¬RootViewController.xibÕâ¸öNibÎļþµÄÎļþÓµÓÐÕß¶ÔÏó¾ÍÊÇRootViewControllerÀàµÄʵÀý¡£
Ò»°ãÀ´Ëµ£¬ÔÚʹÓÃÄ£°åͬʱ´´½¨UIViewControllerÎļþºÍ¶ÔÓ¦µÄNibÎļþʱ£¬ËüĬÈÏ»áÉèÖÃNibÎļþ¶ÔÓ¦µÄÎļþÓµÓÐÕßΪ´´½¨µÄUIViewControllerÀà¡£Èç¹ûÒªÐ޸ĻòÕßÉèÖÃNibÎļþ¶ÔÓ¦µÄÎļþÓµÓÐÕߣ¬¿ÉÒÔʹÓÃ
Identity Inspector Ãæ°å½øÐÐÉèÖá£

ÈçÉÏͼËùʾ£¬ ±¾ÏîÄ¿µÄRootViewController.xibÎļþ¶ÔÓ¦µÄÎļþËùÓÐÕߣ¬ÔÚIdentity
Inspector Ãæ°åÖУ¬Custom Class²¿·ÖµÄClassÏ¿ÉÒÔ¿´µ½¶ÔÓ¦µÄÖµÊÇRootViewController£¬Õâ±íʾÎļþÓµÓÐÕß¾ÍÊÇRootViewControllerÀàµÄʵÀý£¬¾Í¿ÉÒÔÔÚXcodeÖзÃÎÊÎļþÓµÓÐÕßÀàÀïÃæ±ê־ΪIBOutletµÄÊôÐÔºÍIBActionµÄ·½·¨£¬ºÍNibÎļþÖеĽçÃæÔªËØ½¨Á¢¹ØÁª¡£
ÊÓͼ²å×ù±äÁ¿
ÔÚXcodeÖУ¬Ê¹Óà Inspector Ãæ°å£¬»òÕßÔÚÁ¬½ÓÃæ°å£¬¿ÉÒԲ鿴¡¢´´½¨¡¢É¾³ý¶ÔÏóÖ®¼äµÄÁ¬½Ó¡£Òª²é¿´ÊÓͼ¿ØÖÆÆ÷µÄÁ¬½Ó£¬¿ÉÒÔͨ¹ýÒÔϲ½Ö裺
1.ÔÚXcodeµÄ½çÃæÖУ¬´Ó×ó²àµÄÎļþ×éÑ¡ÖÐÒª²é¿´µÄÊÓͼ¿ØÖÆÆ÷µÄXibÎļþ
2.ÔÚÊÓͼ±à¼½çÃæ£¬µã»÷Ñ¡ÖÐ File's Owner
3.ÔÚ Inspector Ãæ°å£¬Ñ¡ÖÐ Connection inspector£¬ÕâÀï»áÏÔʾÎļþËùÓÐÕßËùÓеIJå×ùÁ¬½Ó
4.ÔÚÊÓͼ±à¼½çÃæ£¬°´×¡Control¼üµã»÷ File's Owner
»òÕßÔÚ File's OwnerÉϵã»÷ÓÒ¼ü£¬µ¯³öÒ»¸öºÚÉ«°ë͸Ã÷µÄÃæ°åÏÔʾÎļþËùÓÐÕßµÄËùÓÐÁ¬½Ó

ÔÚÉÏÃæµÚÈý²½£¬ÓÒ²àÃæ°åÏÔʾµÄÁ¬½ÓÃæ°åºÍÓÒ¼üµã»÷File's Ownerµ¯³öµÄ°ë͸Ã÷Á¬½ÓÃæ°å£¬ÏÔʾµÄÐÅÏ¢ºÍ×÷Óö¼ÊÇÒ»ÑùµÄ£¬¿ÉÒÔ¸ù¾Ý¸öÈËϰ¹ßÁé»îʹÓᣵ½Ä¿Ç°ÎªÖ¹Î¨Ò»µÄÁ¬½ÓÊÇÊÓͼ¿ØÖÆÆ÷µÄ
view ²å×ù±äÁ¿¡£Ò»¸ö²å×ù±äÁ¿¾Í¶ÔÓ¦ÊÓͼ¿ØÖÆÆ÷ÀàµÄÒ»¸öÊôÐÔ£¨ÓÐʱºòÒ²¿ÉÒÔÊÇÒ»¸öʵÀý±äÁ¿£©£¬Ö»²»¹ýÕâ¸öÊôÐÔºÍnibÎļþÖеÄij¸ö½çÃæÔªËØÁ¬½ÓÔÚÒ»Æð¡£´Ë´¦µÄviewµÄÁ¬½Ó£¬±íÃ÷µ±nibÎļþ
RootViewController.xib ±»¼ÓÔØ£¬²¢ÇÒUIViewµÄʵÀý½âµµÖ®ºó£¬ÊÓͼ¿ØÖÆÆ÷µÄviewʵÀý±äÁ¿»á±»ÉèÖÃΪָÏònibÎļþÖеÄÊÓͼ¡£

Öмä²âÊÔ
ÔÚÏîÄ¿¿ª·¢ÖУ¬ÓÈÆäÔÚ¶Ô¿ª·¢¹¤¾ßºÍÓïÑÔ²»ÊìϤµÄʱºò£¬ÐèÒª¾³£ÐԵĶÔÐÂÔöµÄ¹¦ÄܽøÐвâÊÔ£¬ÒÔÈ·±£µ±Ç°¹¦ÄÜÔËÐÐÊÇÕý³£µÄ¡£±ÈÈçÎÒÃÇÐÂÔöÁËRootViewControllerÕâ¸ö×Ô¶¨ÒåÊÓͼ¿ØÖÆÆ÷£¬ÐèҪȥ²âÊÔÒ»ÏÂËüÊDz»ÊÇÒѾ³É¹¦Ìí¼Ó¡£Òª²âÊÔÊÓͼ¿ØÖÆÆ÷¹¤×÷Õý³££¬¼òµ¥µÄ°ì·¨ÐÞ¸ÄÊÓͼ¿ØÖÆÆ÷µÄÊÓͼµÄ±³¾°É«£¬ÀýÈçÐÞ¸ÄΪ·ÛºìÉ«±³¾°£¬È»ºóÖØÐÂÔËÐУ¬¿´¿´ÊDz»ÊǽçÃæ±ä³ÉÁ˺ìÉ«±³¾°¡£
ÒªÉèÖÃÊÓͼ¿ØÖÆÆ÷µÄÊÓͼµÄ±³¾°É«£¬²½ÖèÈçÏ£º
1.ÔÚXcodeµÄ½çÃæÖУ¬´Ó×ó²àµÄÎļþ×éÑ¡ÖÐÊÓͼ¿ØÖÆÆ÷µÄXibÎļþ£¨RootViewController.xib£©
2.ÔÚÓÒ²àµÄ¹¦ÄÜÇøÓò£¬Ñ¡ÔñÊôÐÔÃæ°å£¨Attributes inspector£©
3.ÔÚ±à¼ÇøÓò£¬Ñ¡ÔñÊÓͼ
4.ÔÚÊÓͼµÄÊôÐÔÃæ°å£¬µã»÷±³¾°É«£¨Background£©¶ÔÓ¦µÄÑÕÉ«ÏÂÀ¿ò£¬»áµ¯³öÑÕɫѡÔñÃæ°å
5.ÔÚÑÕɫѡÔñÃæ°å£¬Ñ¡ÔñÒ»¸öºÏÊʵÄÑÕÉ«£¬ÀýÈç·ÛºìÉ«
6.±£´ænibÎļþ
7.µã»÷×óÉϽǹ¤¾ßÀ¸µÄRun°´Å¥£¬±àÒëÔËÐÐÏîÄ¿

Õý³£Çé¿öÏ£¬±àÒëÓ¦¸Ã²»»á³öÏÖÈκδíÎó£¬ÔËÐкó»áµ¯³öÄ£ÄâÆ÷£¬½á¹ûÈçÏÂͼËùʾ£º

È·ÈÏûÓÐÎÊÌâºó£¬ÔÙ½«Ó¦Óõı³¾°É«»¹Ô¡£»¹ÔµÄ»°£¬½«ÊÓͼµÄ±³¾°É«ÉèÖÃΪ°×É«¾ÍºÃÁË¡£
ÅäÖÃÊÓͼ
XcodeÌṩÁËÒ»Ì×¶ÔÏó¿â£¬¿ÉÒÔÖ±½ÓÌí¼Óµ½NibÎļþÖС£ÆäÖÐÒ»²¿·Öʾ½çÃæÔªËØ£¬ÀýÈç°´Å¥ºÍÎı¾ÊäÈë¿ò£»ÆäËûÒ»²¿·ÖÊÇ¿ØÖÆÆ÷¶ÔÏó£¬ÀýÈçÊÓͼ¿ØÖÆÆ÷¡£ÎÒÃǵ±Ç°ÏîÄ¿µÄnibÎļþÒѾ°üº¬ÁËÊÓͼ£¬ÏÖÔÚÖ»ÒªÌí¼Ó°´Å¥ºÍÎı¾ÊäÈë¿ò¾ÍºÃÁË¡£´Ó¶ÔÏó¿âÖн«Óû§½çÃæÔªËØÍ϶¯µ½ÊÓͼÖУ¬»ù±¾²½ÖèÈçÏ£º
1.ÔÚXcodeµÄ½çÃæÖУ¬´Ó×ó²àµÄÎļþ×éÑ¡ÖÐÊÓͼ¿ØÖÆÆ÷µÄXibÎļþ£¨RootViewController.xib£©
2.ÔÚÓÒ²àµÄ¹¦ÄÜÇøÓò£¬ÏÔʾ¶ÔÏó¿â£¨object library£©
3.Ìí¼ÓÒ»¸ö°´Å¥£¨UIButton£©£¬Ò»¸öÎı¾ÊäÈë¿ò£¨UITextField£©£¬Á½¸öÎı¾±êÇ©£¨UILabel£©µ½ÊÓͼÖС£¿ÉÒÔ´Ó¶ÔÏó¿âÀïÃæÍ϶¯²¢½«ËüÃǷŵ½ÊÓͼ

4.²Î¿¼Ç°ÃæµÄÔÐÍÉè¼Æ£¬¶Ô½çÃæÔªËØµÄ³ß´çºÍ²¼¾Ö½øÐе÷Õû
5.½«ÓҲ๦ÄÜÇøÓòÇл»µ½ÊôÐÔÃæ°å£¨Attributes inspector£©
6.Ñ¡ÖÐÎı¾ÊäÈë¿ò£¨Text Field£©£¬ÉèÖÃPlaceholdÊôÐÔΪ¡°ÇëÊäÈëÐÕÃû¡±
7.Ñ¡ÖÐ×óÉϲàµÄÎı¾±êÇ©£¨UILabel£©£¬ÉèÖÃTextÊôÐÔΪ¡°ÐÕÃû¡±
8.Ñ¡ÖÐÏÂÃæµÄÎı¾±êÇ©£¨UILabel£©£¬ÉèÖÃTextÊôÐÔΪ¿Õ£¬AlignmentÊôÐÔÉèÖÃΪ¾ÓÖÐ¶ÔÆë
9.Ñ¡Öа´Å¥£¨UIButton£©£¬ÉèÖÃTitleÊôÐÔΪ¡°Õкô¡±
10.ÉèÖúõĽçÃæÈçÏÂËùʾ£º

Èç¹ûÎÒÃÇÏëÈÃÓû§ÔÚÊäÈëʱÓÐһЩ¸üºÃµÄÌåÑ飬±ÈÈçÓû§ÊäÈëÓ¢ÎÄÃûʱ£¬Ä¬ÈÏ»áÊ××Öĸ´óд£»±ÈÈç¼üÅÌ»áÏÔʾÍê³É£¨Done£©°´¼ü£¬µã»÷ºóÍê³ÉÊäÈëÒþ²Ø¼üÅÌ¡£ÒªÖ§³ÖÕâÑùµÄÊäÈëϸ½Ú£¬Í¨¹ýÉèÖÃÎı¾¿òÊôÐԾͿÉÒÔÍê³É£º
ÔÚCapitalizationÏÂÀÁÐ±í£¬Ñ¡ÔñWords£¬ÒÔÖ§³ÖÊ××Öĸ´óд
ÔÚReturn KeyÏÂÀÁÐ±í£¬Ñ¡ÔñDone£¬ÒÔÖ§³Ö¼üÅÌÉÏÏÔʾÍê³É£¨Done£©°´¼ü

±£´æÎļþºó£¬±àÒëÔËÐгÌÐò£¬¿ÉÒÔ¿´µ½ÔËÐеĽçÃæÐ§¹ûºÍÎÒÃÇÔÚXcodeÖаڷŵÄЧ¹ûÊÇÒ»ÑùµÄ¡£µã»÷°´Å¥£¬°´Å¥»á¸ßÁÁ£¬ÔÚÎı¾ÊäÈë¿òÖеã»÷£¬»áµ¯³öÊäÈë¼üÅÌ£¬¼üÅÌÀï¿ÉÒÔ¿´µ½Íê³É£¨Done£©°´Å¥¡£µ«ÊÇ»¹²»Äܸù¾ÝÊäÈëµÄÄÚÈÝÈ¥ÏÔʾÎÄ×Ö£¬»¹²»ÄÜÒþ²Ø¼üÅÌ£¬ÒòΪĿǰÎÒÃÇ»¹½ö½öÍê³ÉÁËÊÓͼ²¿·ÖµÄ¹¤×÷£¬»¹ÐèÒªÈÃÊÓͼÖеĶÔÏóºÍÊÓͼ¿ØÖÆÆ÷µÄ¶ÔÏóÖ®¼ä½¨Á¢Á¬½Ó£¬²¢Ìí¼ÓÏàÓ¦µÄÂß¼£¬²ÅÄÜʵÏÖ¡£

ʵÏÖÊÓͼ¿ØÖÆÆ÷
ʵÏÖÊÓͼ¿ØÖÆÆ÷ÐèÒªÍê³ÉÒÔϼ¸¼þÊ£º
1.¶¨Òå²å×ù±äÁ¿ºÍ¶¯×÷·½·¨£¬ºÍNibÎļþµÄÊÓͼÖеĽçÃæÔªËØ½øÐйØÁª
2.ʵÏÖµã»÷°´Å¥ºóµÄÏà¹ØÂß¼¡ª¡ª¸ù¾ÝÊäÈëµÄÃû×ÖÏÔʾÏàÓ¦µÄÕкôÓÅжÏÊäÈëµÄÃû×ÖÊDz»ÊÇΪ¿ÕÊDz»Êdz¬³¤
3.Óû§µã»÷¼üÅÌÉϵÄÍê³É£¨Done£©°´¼üºó£¬¼üÅÌ»áÏûʧ
½¨Á¢Á¬½Ó
´ÓÒµÎñ½Ç¶ÈÀ´¿´£¬ÎÒÃÇÐèÒªºÍ½çÃæµÄ¼¸¸öÔªËØ½¨Á¢¹ØÁª£º
1.Îı¾ÊäÈë¿ò£¬»ñÈ¡ËüµÄÊäÈëÎÄ×Ö
2.Îı¾±êÇ©£¬ÈÃËüÏÔÊ¾ÌØ¶¨ÎÄ×Ö
3.°´Å¥£¬ÏìÓ¦ËüµÄµã»÷ʼþ
ÔÚXcode4֮ǰ£¬Interface BuilderºÍXcodeÊÇ·Ö¿ªµÄ£¬Ò»°ãÊÇÏÈÔÚXcodeÖж¨ÒåºÃ²å×ù±äÁ¿ºÍ¶¯×÷·½·¨£¬È»ºóÔÙÔÚInterfaceBuilderÖÐÈ¥½¨Á¢½çÃæÔªËØºÍÊÓͼ¿ØÖÆÆ÷Ö®¼äµÄÁ¬½Ó£¬µ½Xcode4Ö®ºó£¬Interface
BuilderºÍXcodeÒѾͳһºÏ²¢ÔÚÁËÒ»Æð£¬ËùÒÔÕⲿ·ÖÒ²ÓÐһЩ±ä»¯£¬Xcode4ÈÃÕⲿ·Ö¹¤×÷±äµÄ¸ü¼ÓÈÝÒ×һЩ£¬¿ÉÒÔÖ±½Ó´ÓÊÓͼ±à¼½çÃæÍ϶¯Á¬½Óµ½´úÂëÎļþ¡£
ÔÚÎÒÃÇÕýÔÚ¿ª·¢µÄSayHelloÏîÄ¿ÖУ¬ÏÖÔÚÎÒÃÇÐèÒªÌí¼ÓÒ»¸ö¶¯×÷·½·¨µ½ÊÓͼ¿ØÖÆÆ÷£¬µ±½çÃæÉϵİ´Å¥±»µã»÷ʱ£¬Ëü»á·¢ËÍÒ»¸ösayHello:ÏûÏ¢µ½ÊÓͼ¿ØÖÆÆ÷£¬ËùÒÔ½ÓÏÂÀ´ÒªÎª°´Å¥´´½¨Ò»¸ösayHello:¶¯×÷·½·¨£º
1.ÔÚXcodeÖУ¬Ñ¡ÔñÊÓͼ¿ØÖÆÆ÷¶ÔÓ¦µÄNibÎļþ£¨RootViewController.xib£©
2.ÏÔʾAssistant editor

3.ÈÃAssistantÏÔʾÊÓͼ¿ØÖÆÆ÷µÄÍ·Îļþ£¨RootViewController.h£©
4.°´×¡Control¼ü£¬´ÓNibÎļþÖеİ´Å¥Í϶¯µ½Í·ÎļþµÄ·½·¨ÉùÃ÷´úÂëÇøÓò

5.ÔÚµ¯³öµÄÃæ°åÖУ¬½«°´Å¥ºÍÊÓͼ¿ØÖÆÆ÷Ö®¼äµÄÁ¬½ÓÉèÖÃΪ¶¯×÷£¨Action£©
ÉèÖà Connection Ϊ Action
ÉèÖà Name Ϊ sayHello:
ÉèÖà Type Ϊ id
ÉèÖà Event Ϊ Touch Up Inside£¬Ò²¾ÍÊÇÓû§ÔÚµã»÷°´Å¥£¬È»ºóÊͷź󴥷¢
ÉèÖà Arguments Ϊ Sender
6.µã»÷Connect½¨Á¢Á¬½Ó

ͨ¹ýÉÏÃæµÄΪ°´Å¥Ìí¼Ó¶¯×÷µÄ²Ù×÷£¬Íê³ÉÁËÁ½¼þÊÂ
Ìí¼ÓÁËÏàÓ¦µÄ´úÂëµ½ÊÓͼ¿ØÖÆÆ÷µÄÀàÖÐ
Í·ÎļþÖÐÔö¼ÓÁËÈçÏ´úÂ룺
(IBAction)sayHello:(id)sender; |
²¢ÇÒʵÏÖÎļþÖÐÔö¼ÓÁËÏàÓ¦µÄʵÏÖ·½·¨£º
(IBAction)sayHello:(id)sender {} |
IBAction ÊÇÒ»¸öÌØÊâµÄ¹Ø¼ü×Ö£¬ËüΨһµÄ×÷ÓÃÊǸæËßInterface Builder½«Ä³¸ö·½·¨µ±³ÉÄ¿±ê/¶¯×÷¹ØÁªÖе͝×÷¡£Ëü±»¶¨ÒåΪvoid¡£
½¨Á¢Á˰´Å¥µ½ÊÓͼ¿ØÖÆÆ÷Ö®¼äµÄÁ¬½Ó¡£½¨Á¢Á¬½ÓµÄÒâÒ壬µÈͬÓÚÔÚ°´Å¥Éϵ÷Óà addTarget:action:forControlEvents:
£¬²¢ÇÒ target ÊÇÎļþÓµÓÐÕߣ¨File's Owner£©Ò²¾ÍÊÇÊÓͼ¿ØÖÆÆ÷£¬action ÊÇ sayHello:
·½·¨£¬¶ÔÓ¦µÄʼþÊÇ UIControlEventTouchUpInside¡£
½ÓÏÂÀ´Òª½¨Á¢Îı¾ÊäÈë¿òºÍÎı¾±êǩ֮¼äµÄÁ¬½Ó£º
1.ÔÚXcodeÖУ¬Ñ¡ÔñÊÓͼ¿ØÖÆÆ÷¶ÔÓ¦µÄNibÎļþ£¨RootViewController.xib£©
2.ÏÔʾAssistant editor

3.ÈÃAssistantÏÔʾÊÓͼ¿ØÖÆÆ÷µÄÍ·Îļþ£¨RootViewController.h£©
4.°´×¡Control¼ü£¬´ÓNibÎļþÖеÄÎı¾ÊäÈë¿òÍ϶¯µ½Í·ÎļþµÄ·½·¨ÉùÃ÷´úÂëÇøÓò

5.ÔÚµ¯³öµÄÃæ°åÖУ¬½«Îı¾ÊäÈë¿òºÍÊÓͼ¿ØÖÆÆ÷Ö®¼äµÄÁ¬½ÓÉèÖÃΪ²å×ù£¨Outlet£©
ÉèÖà Connection Ϊ Outlet
ÉèÖà Name Ϊ nameTextField
ÉèÖà Type Ϊ UITextField

6.µã»÷Connect½¨Á¢Á¬½Ó
ͨ¹ýÉÏÃæµÄΪÎı¾ÊäÈë¿òÌí¼Ó²å×ù±äÁ¿µÄ²Ù×÷£¬Íê³ÉÁËÁ½¼þÊÂ
1.Ìí¼ÓÁËÏàÓ¦µÄ´úÂëµ½ÊÓͼ¿ØÖÆÆ÷µÄÀàÖÐ
Í·ÎļþÖÐÔö¼ÓÁËÈçÏ´úÂ룺
@property (nonatomic, retain) IBOutlet UITextField *nameTextField; |
²¢ÇÒʵÏÖÎļþÖÐÔö¼ÓÁËÏàÓ¦µÄʵÏÖ·½·¨£º
ÔÚ¶¥²¿Ôö¼ÓÁË£º
@synthesize nameTextField; |
ÔÚ dealloc ·½·¨ÖÐÌí¼ÓÁË
ÔÚ viewDidUnload ·½·¨ÖÐÌí¼ÓÁË£º
[self setNameTextField:nil]; |
IBOutletÊÇÒ»¸öÌØÊâµÄ¹Ø¼ü×Ö£¬ËüΨһµÄ×÷ÓÃÊÇ֪ͨInterface
Builder½«Ä³¸öʵÀý±äÁ¿»òÕßÊôÐÔµ±³É²å×ù±äÁ¿¡£Êµ¼ÊÉÏ£¬Õâ¸ö¹Ø¼ü×Ö±»¶¨ÒåΪ¿Õ°×£¬Òò´ËÔÚ±àÒëµÄʱºòËüûÓÐÈκÎ×÷Óá£
2.½¨Á¢ÁËÎı¾ÊäÈë¿òµ½ÊÓͼ¿ØÖÆÆ÷Ö®¼äµÄÁ¬½Ó¡£½¨Á¢Á¬½ÓµÄÒâÒ壬µÈͬÓÚÔÚÊÓͼ¿ØÖÆÆ÷Éϵ÷ÓÃ
setNameTextFiled: ·½·¨£¬½«Îı¾ÊäÈë¿ò×÷Ϊ²ÎÊý´«Èë¡£
°´ÕÕÉÏÃæ´´½¨Îı¾ÊäÈë¿ò²å×ù±äÁ¿ÏàͬµÄ·½·¨£¬ÔÙ½¨Á¢ÓÃÀ´ÏÔʾÎʺòÓïµÄÎı¾±êÇ©µÄ²å×ù±äÁ¿£¬²¢ÇÒ½«²å×ù±äÁ¿ÃüÃûΪ
greetingLabel£¬ÀàÐÍΪ UILabel¡£
ʵÏÖÂß¼´úÂë
µã»÷ÊÓͼÖеİ´Å¥£¬Ëü»áÏòÊÓͼ¿ØÖÆÆ÷·¢ËÍ sayHello: ÏûÏ¢£¬Ö®ºó£¬ÊÓͼ¿ØÖÆÆ÷»áÈ¡µÃÎı¾ÊäÈë¿òÎÄ×ÖÄÚÈÝ£¬¸ù¾ÝÄÚÈÝÀ´¸üÐÂÓÃÀ´ÏÔʾÎʺòÓïµÄÎı¾±êÇ©µÄÄÚÈÝ¡£ÒÔÏÂÊÇRootViewController.mÎļþÖÐ
sayHello: ·½·¨´úÂëµÄʵÏÖ£º
- (IBAction)sayHello:(id)sender {
// »ñÈ¡Îı¾ÊäÈë¿òÄÚÈÝ£¬²¢´æ´¢µ½±äÁ¿ÖÐ
NSString *nameString = nameTextField.text;
// ¼ì²éÊäÈëµÄÃû×ÖÊÇ·ñΪ¿Õ£¬Èç¹ûΪ¿Õ£¬µ¯³öÌáʾÐÅÏ¢
if (nameString.length == 0) {
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Ãû×Ö²»ÄÜΪ¿Õ" message:@"ÇëÊäÈëÃû×Öºó£¬
ÖØÐµã»÷°´Å¥¡£" delegate:nil cancelButtonTitle:@"È·¶¨" otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
greetingLabel.text = @"";
return;
}
// ¼ì²éÃû×ÖÊDz»Êdz¬¹ý16¸ö×Ö·û£¬³¬¹ý16¸ö×Ö·û×Ô¶¯½Ø¶Ï
if (nameString.length > 16) {
nameString = [nameString substringToIndex:16];
}
// ¸ù¾ÝÊäÈëµÄÃû×Ö£¬Éú³ÉÎʺòÓï
NSString *greeting = [NSString stringWithFormat:@"ÄãºÃ£¬%@!", nameString];
// ÏÔʾÎʺòÓï
greetingLabel.text = greeting;
}
|
¶ÔÓÚÕâ¸ö·½·¨Óм¸µã²¹³ä˵Ã÷£º
1.UIAlertViewÊÇרÃÅÓÃÀ´ÏÔʾÏûÏ¢Ìáʾ¶Ô»°¿ò
2.stringWithFormat:·½·¨·û´®°´ÕÕ¸ñʽ»¯×Ö·û´®ËùÖ¸¶¨µÄ¸ñʽ´´½¨Ò»¸öÐÂ×Ö·û´®¡£%@±íÃ÷´Ë´¦Ó¦¸ÃʹÓÃÒ»¸ö×Ö·û´®¶ÔÏóÀ´´úÌæ¡£
Òþ²Ø¼üÅÌ
±àÒë²¢ÔËÐÐÓ¦ÓóÌÐò¡£ÔÚÎı¾¿òÖÐÊäÈë¡°Jim¡±£¬µã»÷°´¼üºó£¬±êÇ©ÏÔʾ¡°ÄãºÃ, Jim!¡± ¡£µ«ÊÇÑ¡ÔñÎı¾×ֶνøÐÐÊäÈ룬Äú»á·¢ÏÖÄúûÓа취±íʾÒÑÍê³ÉÊäÈ룬ҲûÓа취Ïû³ý¼üÅÌ¡£ÔÚiPhoneÓ¦ÓóÌÐòÖУ¬µ±Ò»¸öÔÊÐíÎı¾ÊäÈëµÄÔªËØ±ä³ÉµÚÒ»ÏìÓ¦Õßʱ£¬¼üÅ̾ͻá×Ô¶¯ÏÔʾ³öÀ´£¬¶øµ±¸ÃÔªËØ²»ÔÙ´¦ÓÚµÚÒ»ÏìÓ¦Õß״̬£¬¼üÅ̾ͻáÏûʧ¡£ÎÒÃDz»ÄÜÖ±½ÓÏò¼üÅÌ·¢ËÍÏûÏ¢£¬µ«ÊÇ¿ÉÒÔÇл»Îı¾ÊäÈëÔªËØµÄµÚÒ»ÏìÓ¦Õß״̬£¬ÀûÓøòÙ×÷µÄ¸½¼ÓЧ¹ûÀ´ÏÔʾ»òÏû³ý¼üÅÌ¡£ÔÚÓ¦ÓóÌÐòÖУ¬µ±Óû§µã»÷Îı¾×Ö¶Îʱ£¬¸Ã¿Ø¼þ¾Í»á±ä³ÉµÚÒ»ÏìÓ¦Õߣ¬Òò´Ë¼üÅ̾ͻáÏÔʾ³öÀ´¡£¶øµ±Óû§µã»÷¼üÅÌÖеÄDone°´¼üʱ£¬Ï£Íû¼üÅÌÏûʧ¡£
UITextFieldDelegateÐÒé°üº¬Ò»¸ötextFieldShouldReturn:·½·¨£¬Ò»µ©Óû§µã»÷Return°´¼ü£¬Îı¾×ֶξͻáµ÷Óø÷½·¨£¨ºÍ°´¼üµÄ±êÌâÎ޹أ©¡£µ«½«ÊÓͼ¿ØÖÆÆ÷ÉèÖóÉÎı¾ÊäÈë¿ò£¨UITextField£©µÄίÍÐ(Delegate)£¬²Å¿ÉÒÔʵÏָ÷½·¨£¬ÔÚ·½·¨ÖÐÏòÎı¾×ֶη¢ËÍresignFirstResponderÏûÏ¢£¬Õâ¸öÏûÏ¢µÄ¸½¼ÓЧ¹û»áÈüüÅÌÏûʧ¡£
ͨ¹ýÒÔϲ½ÖèÉèÖÃÎı¾ÊäÈë¿òµÄίÍУ¨delegate£©Á¬½Ó£º
1.ÔÚXcodeÖУ¬Ñ¡ÔñÊÓͼ¿ØÖÆÆ÷¶ÔÓ¦µÄNibÎļþ£¨RootViewController.xib£©
2.°´×¡Control¼ü£¬µã»÷Îı¾ÊäÈë¿ò
3.ÔÚµ¯³öµÄ°ë͸Ã÷Ãæ°åÖУ¬Ñ¡ÖÐ delegate ºóÃæµÄÔ²µã£¬²¢Í϶¯µ½
File's Owner

½ÓÏÂÀ´£¬À´ÊµÏÖ½«RootViewController×÷ΪÎı¾ÊäÈë¿ònameTextFieldµÄίÍУ¨delegate£©
ÔÚÊÓͼ¿ØÖÆÆ÷µÄÍ·Îļþ£¨RootViewController.h£©ÖУ¬ÔÚUIViewControllerºóÃæÌí¼Ó<UITextFieldDelegate>£º
@interface RootViewController : UIViewController<UITextFieldDelegate> { |
Õâ¸öÉêÃ÷±íʾÊÓͼ¿ØÖÆÆ÷RootViewController½«Ö§³ÖUITextFieldDelegateÐÒé
ÔÚÊÓͼ¿ØÖÆÆ÷µÄʵÏÖÎļþ£¨RootViewController.m£©£¬ÊµÏÖ
textFieldShouldReturn: ·½·¨£º
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (nameTextField == textField) {
[nameTextField resignFirstResponder];
}
return YES;
} |
ÒòΪÕâ¸öÓ¦ÓóÌÐòÖ»ÓÐÒ»¸öÎı¾ÊäÈë¿ò£¬ËùÒÔÆäʵ²»ÐèÒª°üº¬nameTextField
== textField¼ì²é¡£²»¹ýÓÐЩʱºò£¬¶ÔÏó¿ÉÄܻᱻÉèÖóɶà¸öÏàͬÀàÐ͵ĶÔÏóµÄίÍУ¬Õâʱºò¾ÍÐèÒªÀ´Çø·ÖÕâЩ¶ÔÏó¡£
ÖÁ´ËÎÒÃÇÒѾ¿ª·¢Íê³ÉÁËÕû¸öÓ¦ÓóÌÐò¡£½ÓÏÂÀ´½«¶ÔËü½øÐвâÊÔ¡£
²âÊÔ
Õâ¸öÓ¦ÓóÌÐòÏà¶Ô¼òµ¥£¬ÎÒÃÇÉè¼Æ¼¸¸ö²âÊÔ³¡¾°£º
1.ÊäÈëÕý³£µÄÃû×Ö£¬ÀýÈç¡°±¦Óñ¡±£¬È»ºóµã»÷°´Å¥£¬¿´¿´ÊDz»ÊÇ»áÏÔʾ¡°ÄãºÃ£¬±¦Óñ!¡±
2.²»ÊäÈëÈκÎÃû×Ö£¬µã»÷°´Å¥£¬¿´¿´ÊDz»ÊÇ»áÓÐÌáʾÐÅÏ¢£¬ÒªÇóÊäÈëÃû×Ö¡£
3.·Ö±ðÊäÈë16¸ö¡¢17¸ö¡¢20¸ö×Ö·ûµÄÃû×Ö£¬¿´¿´Ãû×ÖÊDz»ÊÇ×î¶àÖ»ÄÜÏÔʾǰ16¸ö×Ö·û
4.µã»÷Îı¾ÊäÈë¿ò£¬ÏÔʾ¼üÅÌ£¬µã»÷¼üÅÌÉϵÄDone°´Å¥£¬¿´¼üÅÌÊDz»ÊÇ»áÒþ²Ø
5.Õë¶ÔÕâ¸ö²âÊÔ³¡¾°£¬ÖðÒ»×öһϹ¦ÄܵIJâÊÔ£¬¿´ÆðÀ´½á¹ûºÍÎÒÃÇÔ¤ÆÚµÄÍêȫһÑù
С½á
ͨ¹ýÕâÑùÒ»¸ö¼òµ¥µÄÏîÄ¿£¬Á˽âÒÔÏÂ֪ʶµã£º
1.iOS¿ª·¢³£ÓõÄһЩÉè¼ÆÄ£Ê½
2.iPhone³ÌÐòµÄÆô¶¯¹ý³Ì
3.ÊÓͼ¿ØÖÆÆ÷ºÍNibÎļþÈçºÎ½¨Á¢Á¬½Ó
4.ÕâЩ֪ʶ¶ÔÓÚiPhone¿ª·¢ºÍiOS¿ª·¢À´Ëµ£¬¶¼Êǻᾳ£Óõ½µÄ֪ʶ¡£
|