2016-02-01 2 views
0

В моем классе A. Я использую Enum.Значение Enum не отображается правильно

typedef enum { 
    EditProfile, 
    CreateProfile, 
} AdressState; 

@interface ManageAddress : UIViewController<UITableViewDataSource,UITableViewDelegate,UIGestureRecognizerDelegate> 
{ 
    AdressState state; 
} 

и присвоить значение в файле .m

-(IBAction)adress:(id)sender 
{ 
    state = CreateProfile; 
    MyAddress *my = [[MyAddress alloc]initWithNibName:@"MyAddress" bundle:nil]; 
    [self.navigationController pushViewController:my animated:YES]; 
} 

На моем MyAddressController я обращающегося значение перечислимого

@interface MyAddress : UIViewController<UITextFieldDelegate,UITextViewDelegate> 
{ 
    AdressState state; 
} 

.m файл

if (state == EditProfile) 
{ 
    mobile.text = [[NSUserDefaults standardUserDefaults]objectForKey:@"mobile"]; 
} 

Мое состояние шоу всегда EditProfile, но я задница запустите значение CreateProfile. Пожалуйста помоги.

+0

Не могу не видеть, как вы установите 'state' переменную экземпляра. – trojanfoe

+0

Я не использую состояние нигде – varun

+0

Итак, вы не назначаете 'state', поэтому оно задано' 0' ('EditProfile'), и вы спрашиваете, почему он всегда показывает' EditProfile'? Это верно? – trojanfoe

ответ

0

Создайте свой enum глобально, как в AppDelegate или Singleton класс и чем назначить текущее состояние из ManageAddress и получить его на MyAddress

enter image description here

Присвоить здесь:

-(IBAction)adress:(id)sender { 

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
appDelegate.state = CreateProfile; 
MyAddress *my =[[MyAddress alloc]initWithNibName:@"MyAddress" bundle:nil]; 
[self.navigationController pushViewController:my animated:YES]; 

} 

Получить здесь:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
if (appDelegate.state == EditProfile) { 
    mobile.text =[[NSUserDefaults standardUserDefaults]objectForKey:@"mobile"]; 
} 
+0

Почему кто-то оценивает мой голос? дай мне повод. – BADRI

+0

Потому что все, что вы сделали, - это перемещение, где объявляется 'enum'. Код, который вы показываете, совпадает с кодом OP. В чем смысл вашего ответа? – trojanfoe

+0

Я попросил создать enum глобально, а значение enum можно присвоить/получить доступ в любом месте проекта. Это то, что он хотел сделать в коде. – BADRI

1

Вам необходимо присвоить значение от переменной-члену state переменной-члена MyAddressstate, поскольку они оба находятся в разных классах. Просто обновите (IBAction)adress:(id)sender mthod на следующее:

-(IBAction)adress:(id)sender{ 
    state = CreateProfile; 
    MyAddress *my =[[MyAddress alloc]initWithNibName:@"MyAddress" bundle:nil]; 
    my.state = state; 
    [self.navigationController pushViewController:my animated:YES]; 

}

Смежные вопросы