设置UITextField文本

时间:2011-03-26 16:15:15

标签: iphone objective-c xcode ios uitextfield

我的应用程序中有两个视图由RootViewControllerAccountInfoViewController处理。

我的AccountInfoViewController看起来像这样:

#import <UIKit/UIKit.h>
#import "Account.h"

@interface AccountInfoViewController : UIViewController {

    IBOutlet UITextField *acctName;
    IBOutlet UITextField *acctBalance;
    Account *acct;
}

@property (nonatomic, retain) UITextField *acctName;
@property (nonatomic, retain) UITextField *acctBalance;
@property (nonatomic, retain) Account *acct;

-(void) saveAccountInfo;

@end

在我RootViewController我这样做:

- (void)editAcctInfo:(Account *)acct {
    if (self.acctInfoViewController == nil) {
        AccountInfoViewController *a = [[AccountInfoViewController alloc]
                                        initWithNibName:@"AccountInfoViewController" 
                                        bundle:[NSBundle mainBundle]];
        self.acctInfoViewController = a;
        [a release];
    }

   if (acct != nil ) {
       self.acctInfoViewController.acct = acct;
   }

    //Hide Toolbar
    [toolbar removeFromSuperview];
    [self.navigationController pushViewController:self.acctInfoViewController 
                                         animated:YES];
}

以下是我viewDidLoad的{​​{1}}方法:

AccountInfoViewController

当我运行此操作时,我的- (void)viewDidLoad { UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAccountInfo:)]; acctBalance.text = acct.balance.accessibilityValue; acctName.text = acct.name.accessibilityValue; //acctName.text = @"Test Text"; self.title =@"Edit Account"; self.navigationItem.rightBarButtonItem = saveButton; [super viewDidLoad]; } 视图中没有任何内容。如果我用“测试文本”取消注释该行,那在我的视图中看起来很好,所以我知道我有一部分是正确的。 调试时,我可以看到acct下的值。当我实际上将鼠标悬停在代码中的单词acct上时,我会获得所有值的“无效摘要”。

知道我做错了什么或是否有更好的方法来实现这个目标?我知道我在UITextFields中设置“acct”属性的问题一定是个问题。

这就是我调用上述AccountInfoViewController方法的方法:

editAcctInfo

1 个答案:

答案 0 :(得分:0)

我无法看到您分配和初始化帐户的位置。您只在要显示的代码中声明了它。是在RootViewController中分配的吗?是

if (acct != nil ) {
   self.acctInfoViewController.acct = acct;
}

被叫?