firstViewControllerでカスタマイズしたUITextFieldがあります。これで、他のViewControllerで同じ動作をしたくありません。IBOutletのすべてのプロパティをインポートする方法はありますか?
質問する
98 次
3 に答える
1
ベースビューコントローラーを定義し、そこからすべてのビューコントローラーを派生させてみませんか?
@interface MyBaseCustomViewController : UIViewController
...
@property(...) UITextField* ...
...
@end
@interface MyOtherCustomViewController : MyBaseCustomViewController
...
于 2012-06-04T15:13:25.253 に答える
1
はい、UITextFieldのサブクラスを作成できます。このサブクラスには、ビューコントローラーで実行したすべてのカスタムコードがサブクラスの関数として含まれます。
例えば
- (void) viewDidLoad
{
//UITextField *textField;
//change color, background, size etc..
}
次に、このクラスのUITextFieldから派生するUICustomTextFieldという新しいクラスを作成し、メソッドを作成します。
//in UICustomTextField.m
- (void) doCustomModifications
{
self.stuff = custom stuff;
other custom stuff
etc...
}
コードでdoCustomModificationsを呼び出します
- (void)viewDidLoad
{
[customTextField doCustomModifications];
}
于 2012-06-04T15:15:38.357 に答える
1
独自のCustomclassを作成し、コンストラクターでプロパティを設定するだけです。
@interface CustomTextField : UITextField
@end
@implementation CustomTextField
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//Customize here
self.autocapitalizationType = UITextAutocorrectionTypeDefault;
self.text = @"Blub";
....
}
return self;
}
@end
新しいテキストフィールドを作成する場合は、カスタムクラスを使用してオブジェクトを作成します。
CustomTextField *field = [[CustomTextField alloc] initWithFrame: ...];
于 2012-06-04T15:20:25.780 に答える