将信息从UITextField存储回detailTextLabel

时间:2014-08-15 02:57:32

标签: ios delegates

我有一个表示昵称的tableViewCell,当你点击它时,一个segue会带你到一个带有文本字段的视图控制器,在那里你可以输入一个昵称,一旦按下后退按钮它就应该出现在detailTextLabel中。主表视图控制器。我只是一直收到错误,我发布了下面的代码,我也得到了错误。

昵称文字字段代码:

#import "NicknameViewController.h"

@interface NicknameViewController ()

@end

@implementation NicknameViewController


- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.delegate updateCarNickname:self.nicknameField];
}



@end

以下是昵称视图控制器的头文件:

#import <UIKit/UIKit.h>

@protocol CarNicknameDelegate <NSObject>
@optional
- (void)updateCarNickname:(UITextField *)updateNickname;
@end

@interface NicknameViewController : UIViewController

@property (nonatomic, weak) id <CarNicknameDelegate> delegate;

@property (strong, nonatomic) IBOutlet UITextField *nicknameField;

@end

在主视图控制器中,我不断收到此代码的错误,似乎无法弄明白:

-(void)updateCarNickname:(UITextField *)updateNickname {
    self.nicknameCell.detailTextLabel.text = updateNickname;
}

在segue开始之前,我使用了这段代码:

if ([segue.identifier isEqualToString:@"nicknameSegue"]) {
        NicknameViewController *controller = segue.destinationViewController;
        controller.delegate = self;
    }

1 个答案:

答案 0 :(得分:0)

一旦视图控制器的dealloc被调用,视图控制器中的所有视图都会被释放。

您应该将CarNicknameDelegate的参数UITextField更改为NSString

@protocol CarNicknameDelegate <NSObject>
@optional
- (void)updateCarNickname:(UITextField *)updateNickname;
@end

并将您的NicknameViewController更改为此类内容。

@interface NicknameViewController ()

@end

@implementation NicknameViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.delegate updateCarNickname:self.nicknameField.text];
}

@end