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] Bob Smith:(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

2

我已经通过 xcode 5 中的拖放映射了文本字段,因此它没有被合成,但我也尝试通过手动合成来解决这个问题,但它不起作用。

我通过在 viewDidLoad 方法的文本字段对象中分配空字符串解决了这个问题

_txtDialedNumber.text=@"";

注意:-虽然使用这个我没有合成文本字段对象,它在 Xcode 5.0 中为我工作(在 iPhone 5 IOS 6 中测试)

于 2014-03-06T09:28:05.947 回答
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

在 Interface Builder 中检查文本字段和插座之间的连接是否正确。

于 2012-05-02T12:57:37.623 回答
0

检查您是否使用 uitextField 子类化了 textField=[[UITextField alloc]init].

如果您这样做了,请尝试将其从代码中删除。我遇到了同样的问题,我通过删除这些行让它工作了。

于 2013-02-27T06:58:45.147 回答
-1

看起来好像您正在覆盖文本字段的自动设置器/获取器。使用@synthesize 的全部意义在于为您节省一些代码并避免自己设置它们的麻烦。

我的猜测是您没有正确设置代表。您是说当前视图控制器文本字段应该获取日期,然后您关闭模态视图,杀死保存在那里的值。

我会将您的参考从弱更改为强,并摆脱您的二传手。它已经为你完成了,不需要把事情弄得乱七八糟。

于 2012-05-02T13:09:08.183 回答