1

この UIViewController のデリゲートを作成し、従業員名を渡して UITextField を設定しています。しかし、私が何をしても、ご覧のとおり、結果は (null) になります。ただし、同様の方法で入力される日付ラベルがありますが、正しく機能します。参考までに載せておきます。私は単純なものが欠けています。でも、今は目が見えなくなってしまいました…。

何か案は?ありがとう。

@interface TimesheetEntryViewController()
@property (weak, nonatomic) IBOutlet UILabel *datelabel;
@property (weak, nonatomic) IBOutlet UITextField *employeeTextField;

@end

@implementation TimesheetEntryViewController
    @synthesize tableView = _tableView;
    @synthesize datelabel = _datelabel;
    @synthesize employeeName = _employeeName;
    @synthesize employeeTextField = _employeeTextField;

-(void)setEmployeeNameString:(NSString *)lemployeeNameString
{
    self.employeeTextField.text = lemployeeNameString;
    NSLog(@"%@:%@", lemployeeNameString, self.employeeTextField.text);
}

結果: 2012-05-02 08:42:50.137 rbTimesheet[7855:11303] ボブ・スミス:(null)

-(void)changeDateViewController:(ChooseDateViewController *)ntvc didChooseDate:(NSDate     *)lDate
{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateStyle = NSDateFormatterMediumStyle;
    self.datelabel.text = [NSString stringWithFormat:@"%@",
                       [df stringFromDate:lDate]];
    [self dismissModalViewControllerAnimated:YES];
}
4

6 に答える 6

1

だから私は同じ問題を抱えていて、グーグルでこのような複数の投稿に出くわした後、私の問題は仲間の開発者がこれを行っていたことでした(以前のバージョンのxCodeで何らかの形で機能していました)。これを同様のプロジェクトから切り取って貼り付けました

-(void)setTextFieldDelegates{
    self.usernameTextField = [[UITextField alloc] init];
    self.passwordTextField = [[UITextField alloc] init];

    [self.usernameTextField setDelegate: self];
    [self.passwordTextField setDelegate: self];
}

そのため、コンセントが接続されていたにもかかわらず、彼はどういうわけかそれを再割り当てしており、機能していました。

于 2013-09-17T19:06:17.340 に答える
0

ビューがロードされる前に、setEmployeeNameStringを呼び出している可能性がありますか?結果としてnullになるはずです。

于 2013-02-27T07:05:03.227 に答える
0

を使用して uitextField をサブクラス化したかどうかを確認します textField=[[UITextField alloc]init]

それを行った場合は、コードから削除してみてください。私は同じ問題を抱えていましたが、これらの行を削除することで機能しました。

于 2013-02-27T06:58:45.147 に答える
0

Interface Builder で、テキスト フィールドとアウトレットの間の接続が正しいかどうかを確認します。

于 2012-05-02T12:57:37.623 に答える
-1

テキストフィールドの自動セッター/ゲッターをオーバーライドしているように見えます。@synthesizeを使用することの全体的なポイントは、コードを節約し、自分で設定する手間を省くことです。

私の推測では、あなたは代理人を正しく設定していません。現在のビューコントローラのテキストフィールドに日付を取得する必要があると言っている場合は、モーダルビューを閉じて、そこに保存されている値を削除します。

私はあなたの参照を弱いものから強いものに変えて、あなたのセッターを取り除きます。それはすでにあなたのために行われています、物事を乱雑にする必要はありません。

于 2012-05-02T13:09:08.183 に答える