Хотите передать целочисленное значение другому представлению - PullRequest
2 голосов
/ 27 июля 2011

Я создаю приложение для iphone, в котором у меня есть некоторое целое число в моем oneviewcontroller, и я хочу это целочисленное значение в моем контроллере secondviewcontroller.

значение будет случайным. Я сохранил это целочисленное значение в идентификатор счета

Теперь я использую этот код, но не могу получить целочисленное значение.

CODE: передача целочисленного значения из одного UIView в другой UIview

Целочисленное значение всегда становится равным нулю на втором контроллере вида.
Любая помощь будет оценена.
Спасибо.

МОЙ КОД:

Файл FirstView.h

NSInteger myScore;  
id score;  
NSInteger totalscore;

.m файл

NSInteger *cal = (myScore * 100)/400  ;

        totalscore = cal;
        score = totalscore;

Файл SecondView.h

 int scorevalue ;

Файл SecondView.m

FirstViewController *firstVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
value = firstVC.Score;
NSLog(@"SCORE : %d" ,value );

Ответы [ 4 ]

3 голосов
/ 27 июля 2011

Пример:

Если мне нужно сохранить значение int 4 в FirstViewController,

[[NSUserDefaults standardUserDefaults] setObject:4 forKey:@"integer"];
[[NSUserDefaults standardUserDefaults] synchronize];

Я могу получить get в SecondViewController как,

int value = [[NSUserDefaults standardUserDefaults] objectForKey:@"integer"]
NSLog(@"integer = %d", [[NSUserDefaults standardUserDefaults] objectForKey:@"integer"]);

Надеюсь, это будет работать отлично.

0 голосов
/ 27 июля 2011

Простой способ - сохранить значение в NSUserDefault и получить значение целого числа из NSUserDefault в secondviewcontroller.

0 голосов
/ 27 июля 2011

Примите это в .h файл в SecondViewController

int value;

Сделать ниже функцию в SecondViewController

-(void)setValue:(int)number{
    value=number;
}

Контроллер Now In First view выглядит следующим образом:

ParentViewController *objSecond = [[ParentViewController] initwithNibName:@"parentView.xib" bundle:nil];

[objSecond setValue:15]; // Pass actual Value here
[self.navigationController pushViewController:objSecond animated:YES];
[objSecond release];

Теперь, во втором методе viewView ControllerWillAppear, напишите это.

-(void)viewWillAppear:(BOOL)animated{
      myValue = value;
}

Пожалуйста, проверьте орфографические ошибки, когда я это написал. Надеюсь, что это поможет.

Если вы не используете navigationContoller, вы можете сделать что-то вроде этого.

SecondViewControler *objSecond = [[SecondViewController] initwithNibName:@"secondview.xib" bundle:nil];
[objSecond setValue:15]; // Pass actual Value here
[objSecond viewWillAppear:YES];
[self.view addSubview:objSecond];
[objSecond release];
0 голосов
/ 27 июля 2011

Поскольку 'id' обозначает объекты ( см. Ref ), но нам требуется тип данных.

Вместо того, чтобы объявлять его как id, объявите его как int.

Что-то вроде

int score;

или

NSInteger score;

Редактировать:

Также добавить свойство и синтезировать его.In .h

@property(nonatomic,assign) NSInteger score;

In .m

@synthesize score;

В первом контроллере представления передайте значение во второй View с помощью

NSInteger *cal = (myScore * 100)/400  ;
totalscore = cal;
score = totalscore;
secondViewObj.score = score;
...