У меня есть приложение, в котором я устанавливаю значение почтового индекса в UITextField для одного представления.Когда я переключаю представления, я бы хотел, чтобы это значение отображалось как UILabel.Я знаю, как сделать это в одном контроллере представления, но не между двумя.Я попытался установить 'значение почтового индекса' в константную строку в заголовочном файле с именем 'globals.h', а затем вызвать ее, но она всегда вылетает.Вот несколько примеров кода:
Это файл globals.h:
#import <Foundation/Foundation.h>
@interface globals
extern NSString *zipCodeValue;
@end
Это файл globals.m:
#import "globals.h"
@implementation globals
NSString *zipCodeValue = @"default value";
@end
Это первыйview (где почтовый индекс вводится в текстовое поле. И интерфейс, и реализация):
#import <UIKit/UIKit.h>
@interface ZipCodeEntryViewController : UIViewController <UITextFieldDelegate> {
UITextField *zipCode;
UIButton *doneButton;
}
@property (nonatomic, retain) IBOutlet UITextField *zipCode;
@property (nonatomic, retain) IBOutlet UIButton *doneButton;
-(IBAction) tapBackground:(id)sender;
-(IBAction) doneButtonClick:(id)doneButton;
@end
#import "ZipCodeEntryViewController.h"
#import "MillersAppAppDelegate.h"
#import "AddressViewController.h"
#import "globals.h"
#define MAX_LENGTH 5
@implementation ZipCodeEntryViewController
@synthesize zipCode, doneButton;
-(IBAction) doneButtonClick:(id)doneButton{
MillersAppAppDelegate *delegate = (MillersAppAppDelegate *)[[UIApplication sharedApplication] delegate];
AddressViewController *addressView = [[AddressViewController alloc]initWithNibName:@"AddressViewController" bundle:nil];
[delegate switchViews:self.view toView:addressView.view];
//using the global string to store the text field content
zipCodeValue=zipCode.text;
//the button is clicked and the view changes to addressView while NSLogging the correct value. So far, so good.
NSLog(@"%@", zipCodeValue);
[addressView release];
}
-(IBAction) tapBackground:(id)sender{
[zipCode resignFirstResponder];
}
Итак, на этом этапе все выглядит нормально (корректно выходит из системы).Я предполагаю, что постоянная переменная 'zipCodeValue' будет продолжать сохранять свое установленное значение, даже если контроллер представления изменился.НО, когда я пытаюсь применить его в новом контроллере представления (AddressViewController), он ничего не делает с меткой.Это метод, который я использовал (я назвал его в заголовочном файле; zipCodeEntry - это UILabel, который я назвал инициализированным и подключенным к цели в Интерфейсном Разработчике):
-(void)setZipCode{
zipCodeEntry.text=zipCodeValue;
}
Теперь я полностью сбит с толку,У меня есть основания полагать, что мой мозг что-то упустил, так как я новичок в этом.Извините, если это многословно, я не хотел ничего упускать.Я явно начинающий.AGGGG !!!