Копия строки из одного представления в другое представление в iphone - PullRequest
0 голосов
/ 09 сентября 2011

привет, я новичок в разработке для iphone.

Я пытаюсь с примером, где мне нужно скопировать строку из текстового поля viewController и отобразить ее в следующем представлении с меткой.

На первом экране есть кнопка под текстовым полем. Я не могу исправить некоторые проблемы, показывающие BAD ACESS, может кто-нибудь помочь мне в решении этой проблемы. Дайте мне знать, что я делаю Неправильно.

Спасибо.

//copystring.h

@interface CopystringViewController : UIViewController{

    UITextField *myTextField;
    NSString *somestring;
}

@property(nonatomic,retain)IBOutlet UITextField *myTextfield;

@property(nonatomic,retain)NSString *somestring;

-(IBAction)next:(id)sender;

//.m file

@synthesize myTextfield,somestring;


-(IBAction)next:(id)sender;
{

    NextView * next = [[NextView alloc] initWithNewString: myTextField.text];

    [self.navigationController presentModalViewController: next animated: YES];

}

NextView.h


@interface NextView : UIViewController{

    UILabel  *string2;

}
@property(nonatomic,retain)IBOutlet UILabel *string2;

- (id)initWithNewString:(NSString*)someString;


//.m file

@synthesize string2;


 -(id)initWithNewString:(NSString*)someString {

    string2 = someString;
 return self;

}

Ответы [ 7 ]

4 голосов
/ 09 сентября 2011

Просто замените method.it может работать.

-(IBAction)next:(id)sender; {

    NextView * next = [[NextView alloc] initWithNibName:@"NextView" bundle:nil];
    next.string2=myTextField.text;
    [self.navigationController presentModalViewController:next animated: YES];

}
1 голос
/ 09 сентября 2011

Делегирование - это обычный способ перемещения данных следующим образом.Я написал простой пример проекта , чтобы показать это в действии.

1 голос
/ 09 сентября 2011

U может объявить вашу строку в файле h / m delagate так, как это будет глобальной строкой.Вы можете использовать его с appdaligateobj.stringname.

Вам не нужно init, вы можете напрямую добавить его в viewdidload следующего представления.

string2.text = AppDalegateobj.stringName.

1 голос
/ 09 сентября 2011

Похоже, проблема в том, что вы назначаете NSString (someString) для UILabel (string2).

Ответ AppleVijay должен помочь.

Если вы этого не сделаетекак точка-нотация в ObjC, вы также можете написать это так:

[string2 setText:someString]
1 голос
/ 09 сентября 2011

эй строка2 является меткой, поэтому попробуйте string2.text = somestring;

 -(id)initWithNewString:(NSString*)someString {

string2.text = someString;

 return self;

 }
0 голосов
/ 13 сентября 2011

/

/AppDelegate.h

NSString *String1;

@property (nonatomic, retain) NSString * String1;

//AppDelegate.m
@synthesize String1

//ViewController1.h

AppDelegate * objAppDelegate;
UILable *lblstring;


@property (nonatomic, retain) UILable *lblstring;

//ViewController1.m
@synthesize lblstring

//On View Did Load.
objAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
lblstring.text  = objAppDelegate.String1;
0 голосов
/ 09 сентября 2011

Вам нужно, чтобы вы просматривали и сохраняли строку:

-(id)initWithNewString:(NSString*)someString {
  self = [super init];

  if (self) {
    string2.text = someString;
  }
 return self;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...