Objective-c 裡的 outlet - iPhone4.TW

會員登入



顯示結果從 1 到 2 共計 2 條
  1. #1

    新生報到

    註冊日期:12-16-2008
    文章:1
    謝謝你: 0
    在 0篇文章中獲得 0個感謝
    最近在學寫iphone 程式
    教學文件裡有寫到 outlet 這個東西
    大概是說 controller 如果不跟所要溝通的 interface object 設 IBOutlet的話
    會無法傳送 message 給該物件
    請問是這樣嗎???
    因為我在試的過程中,原本是在 IB 中建好跟一個 UIView object 的 outlet
    執行沒問題後,再回到 h 檔把 IBOutlet 的字殺掉
    還是可以執行更新該 view 的畫面無誤,所以實在搞不懂outlet到底是幹啥用的
    感謝~~~~


  2. #2

    愛用者

    註冊日期:09-09-2008
    文章:52
    謝謝你: 0
    在 0篇文章中獲得 0個感謝
    interface builder只是方便使用者建立一些物件,

    .h 只是宣告定義一些物件/一些事件等
    .m 實作程式與一些事件程式。
    不用interface builder也可一以寫程式方式建立物件

    見下面程式你就解了 !


    .h
    *interface View2ViewController : UIViewController {
    IBOutlet UILabel *Lab1;
    IBOutlet UILabel *Lab2;
    IBOutlet UITextField *MyAns;
    IBOutlet UITextField *MyAns;
    }

    *property (nonatomic, retain) UILabel *Lab1;
    *property (nonatomic, retain) UILabel *Lab2;
    *property (nonatomic, retain) UITextField *MyAns;

    -(IBAction)ChkAns;
    .
    .
    .

    *end

    -----------------------------------------

    .m
    #import "View2ViewController.h"

    *implementation View2ViewController
    *synthesize Lab1;
    *synthesize Lab2;
    *synthesize MyAns;


    - (void)viewDidLoad {
    MyAns.clearButtonMode = UITextFieldViewModeWhileEditing;
    MyAns.enablesReturnKeyAutomatically = YES;
    MyAns.returnKeyType = UIReturnKeyGo;

    self.displayno;

    [Lab1 setFont:[UIFont fontWithName:*"DBLCDTempBlack" size:30.0]];
    [Lab2 setFont:[UIFont fontWithName:*"DBLCDTempBlack" size:30.0]];


    }

    - (BOOL)textFieldShouldReturnUITextField *)TextField {
    // When the user presses return, take focus away from the text field so that the keyboard is dismissed.
    [TextField resignFirstResponder];
    return YES;
    }


    -(IBAction)ChkAns {
    //NSString *dispAns =[NSString stringWithFormat:*"Ans= %d", [[MyText1 integerValue] + [MyText2 integerValue]]];
    NSString *m1= [Lab1 text];
    NSString *m2 =[Lab2 text];
    NSString *ma =[MyAns text];

    NSString *mAns =[NSString stringWithFormat:*"正確答案 = %d",[m1 intValue] + [m2 intValue]];



    if (([m1 intValue] + [m2 intValue])== [ma intValue]) {
    [RightAns setText:*"你答對了 !"];
    [Ans setText:mAns];

    }else{
    [RightAns setText:*"你答錯了 加油請再想想 !"];
    }



    }
    .
    .
    .
    .


 

 

發文規則

  • 不可以發表新主題
  • 不可以發表回覆
  • 不可以上傳附件
  • 不可以編輯自己的文章
  •  
回到此頁頂端