Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
heroii2009
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
#1

Передача переменной между контроллерами - Objective-C

31.07.2014, 13:17. Просмотров 1167. Ответов 3
Метки нет (Все метки)

Добрый день всем, столкнулся с такой проблеммой пытаюсь на другой контроллер передать переменную, принцип такой с первого контроллера перехожу на второй на карте выбираю что-то и со второго передаю в первый делаю так:
1 контроллер
Objective-C
1
2
3
4
5
6
7
8
#import "GoogleMapTapCoordinateViewController.h"
 
@property(nonatomic, strong) NSString *mapAddress;
 
-(void)viewWillAppear:(BOOL)animated{
       NSLog(@"mapAddress = %@",self.mapAddress);
    
}
Второй контроллер

http://www.cyberforum.ru/objective-c/thread1241610.html
Objective-C
1
2
3
4
5
6
7
8
9
#import "OrderViewController.h"
-(void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker {
    
   OrderViewController *orderview = (OrderViewController *)[self.navigationController.viewControllers objectAtIndex:0];
    
        orderview.mapAddress = [NSString new];
        orderview.mapAddress = @"Куда";
 [self.navigationController popToViewController:orderview animated:YES];
    }
но приходит null в любом случае уже долго сижу над этим, есть программа в которой делал точно так же только использовал

presentViewController

и там работает все отлично, в чем проблема ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2014, 13:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Передача переменной между контроллерами (Objective-C):

Как передавать данные между контроллерами Tab Bar-a
Как передавать данные между контроллерами Tab Bar и отслеживать нажатие кнопки...

Проблемы с контроллерами
ViewController.h: #import <UIKit/UIKit.h> @interface ViewController :...

Очень легко) Передача переменной )
Я только начал программировать. Можете подсказать, пожалуйста, если у меня есть...

Передача данных между view
Здравствуйте! подскажите пожалуйста, у меня такая проблема. Есть несколько view...

Передача данных между экранами
Как в ios правильнее всего передавать данные между экранами? Может есть...

3
Victorianec
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
31.07.2014, 14:48 #2
Попробуйте немного по-другому. Во втором вьюконтроллере создайте weak переменную, тип переменной - ваш первый класс. Называться будет как-нибудь типа previousViewController. Когда в первом классе инициализируете второй класс, перед переходом на него добавьте
Objective-C
1
secondClass.previousViewController = self;
Дальше при работе во втором классе напишете
Objective-C
1
_previousViewController.mapAddress = @"адрес";
Должно работать
0
Melzas
38 / 38 / 6
Регистрация: 20.07.2011
Сообщений: 88
31.07.2014, 15:22 #3
Именно с передачей я проблемы не вижу, возможно ошибка в другом месте.

В целом по коду:

Objective-C
1
2
3
-(void)viewWillAppear:(BOOL)animated{
    NSLog(@"mapAddress = %@",self.mapAddress);    
}
Не забывайте про вызов super

Objective-C
1
OrderViewController *orderview = (OrderViewController *)[self.navigationController.viewControllers objectAtIndex:0];
Этот контроллер точно в корне?

Objective-C
1
2
orderview.mapAddress = [NSString new];
orderview.mapAddress = @"Куда";
Первая строка лишняя. Во второй строке создается новый объект NSString и перезаписывает пустой первый.

На этапе обучения конечно сойдет любой подход, но на будущее нужно создавать класс модели, который будет хранить данные, и с помощью которого контроллеры будут "общаться".
0
heroii2009
16 / 6 / 3
Регистрация: 13.03.2012
Сообщений: 196
31.07.2014, 15:51  [ТС] #4
Я все сделал, спасибо большое, была мелкая запара, кое что не учел ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 15:51
Привет! Вот еще темы с решениями:

Разница между @property и объявлением переменной в классе хедера
В чем собственно разница между обьявлением переменной в теле класса в хедере, и...

Обмен между контроллерами SPI
Привет. Хочу организовать обмен между несколькими контроллерами(stm32fx)....

Передача переменной между скриптами
Есть 3 файла: 1.php : в нем лежит форма (одно текстовое поле ввода) 2.php : в...

Передача переменной между страницами.
Доброго времени суток! Такая проблема: есть мастер-страница на которой есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru