2011-03-26 76 views
0

我在我的應用程序中有兩個視圖,分別由我的RootViewControllerAccountInfoViewController處理。設置UITextField文本

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]; 
} 

這裏是我的我的AccountInfoViewControllerviewDidLoad方法:

- (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 [email protected]"Edit Account"; 
    self.navigationItem.rightBarButtonItem = saveButton; 
    [super viewDidLoad]; 
} 

當我運行這個,我在我的裏什麼都沒有我的看法。如果我用「測試文本」取消註釋,在我看來這看起來很好,所以我知道我有一部分是正確的。 調試時,我可以看到acct下的值。當我真的將鼠標懸停在代碼中的單詞acct上時,我得到了所有值的「無效摘要」。

任何想法我做錯了什麼,或者如果有更好的方法來實現這一點?我知道在我的AccountInfoViewController中設置「acct」屬性時,這肯定是個問題。

這是我如何調用上面editAcctInfo方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    Account *account = [accountTableData objectAtIndex:indexPath.row]; 

    [self editAcctInfo:account]; 

} 

回答

0

我不能看到你的alloc和init您的帳戶。您只在您展示的代碼中聲明瞭它。它是否分配在您的RootViewController?是

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

被調用?

+0

它是在該方法call.-(無效)傳遞的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath { 帳戶*帳戶= [accountTableData objectAtIndex:indexPath.row]; [self editAcctInfo:account]; } – 2011-03-26 17:35:05

相關問題