顯示結果從 1 到 2 共計 2 條
-
12-24-2008 #1
最近在學寫iphone 程式
教學文件裡有寫到 outlet 這個東西
大概是說 controller 如果不跟所要溝通的 interface object 設 IBOutlet的話
會無法傳送 message 給該物件
請問是這樣嗎???
因為我在試的過程中,原本是在 IB 中建好跟一個 UIView object 的 outlet
執行沒問題後,再回到 h 檔把 IBOutlet 的字殺掉
還是可以執行更新該 view 的畫面無誤,所以實在搞不懂outlet到底是幹啥用的
感謝~~~~
-
12-26-2008 #2
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:*"你答錯了 加油請再想想 !"];
}
}
.
.
.
.