目标 C 使 vc1 的 UITextField 变为 UILabel vc2



我正在尝试在我的第一个视图控制器中获取我的UITextField电子邮件,以成为下一个视图控制器中的UILabel。它说有一个错误,指出NSString声明选择器初始化值没有可见@interface。当您在 vc1.h 上导入接口时,我以为接口是从 vc2.h 文件加载的?任何帮助都会很好。这是我到目前为止所拥有的:

VC1.H

 #import <UIKit/UIKit.h>
@interface loginUserViewController : UIViewController

@property (nonatomic, retain, strong) IBOutlet UITextField *email;
@property (nonatomic, retain) IBOutlet UITextField *password;
@property (nonatomic, retain) IBOutlet UIButton *login;
@property (nonatomic,retain) IBOutlet UIButton *registerBtn;

-(IBAction)loginUser:(id)sender;


@end

VC2.H

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

@interface Home : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *username;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *Nav;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *logout;

-(IBAction)logout:(id)sender;
-(IBAction)bandHome:(id)sender;
@end

VC2.m

import "Home.h"
#import "loginUserViewController.h"

@interface Home ()
@end
@implementation Home
@synthesize username, band1, band2, band3;
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if(self){
    }
    return self;
}
-(void)viewDidLoad
{
    [super viewDidLoad];
    loginUserViewController *object = [[loginUserViewController alloc]init];
    NSString *string = [[NSString alloc] initWithFormat:@"%i",[object.email.text initValue]];
    username.text = string;
}

VC1.m

#import "loginUserViewController.h"
#import "Home.h"
#import "createBandViewController.h"
@interface loginUserViewController ()

@end
@implementation loginUserViewController
@synthesize email, password;
- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
}
- (void)viewDidload
{
    [super viewDidLoad];
}
- (void)viewDidUnload
{
    [self setEmail:nil];
    [self setPassword:nil];
    [super viewDidUnload];
}
-(IBAction)loginUser:(id)sender {
    if ([email.text isEqualToString:@""] || [password.text isEqualToString:@""])
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Please Fill all the field" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        return;
    }

只需替换此字符串:

NSString *string = [[NSString alloc] initWithFormat:@"%i",[object.email.text initValue]];

使用此字符串:

NSString *string = [[NSString alloc] initWithFormat:@"%i",[object.email.text intValue]];

如果您只想将电子邮件作为字符串,请将其替换为此字符串

NSString *string = [[NSString alloc] initWithFormat:@"%@",object.email.text];

您的错误将得到解决。希望对:)有所帮助

首先在VC2.h中

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

@interface Home : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *username; // Keep property strong to get the value 

在VC2.m中

@synthesize username;

现在在VC1.h中

#import <UIKit/UIKit.h>
#import "homeviewcontroller.h"
@interface loginUserViewController : UIViewController

@property (nonatomic, strong) IBOutlet UITextField *email;
@property (nonatomic, strong) IBOutlet UITextField *password;
@property (nonatomic) nsstring *username;
-(void)viewDidLoad
{
    [super viewDidLoad];
    username= self.email.text;
    homeviewcontroller *object = [[homeviewcontroller alloc]init];
     object.username.text=username;
   }

最新更新