Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
heroii2009
16 / 6 / 0
Регистрация: 13.03.2012
Сообщений: 196
#1

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

31.07.2014, 13:17. Просмотров 1061. Ответов 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);
    
}
Второй контроллер

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

и там работает все отлично, в чем проблема ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2014, 13:17     Передача переменной между контроллерами
Посмотрите здесь:

Передача аргументов между контроллерами - Objective-C
Добрый день, есть такой вот вопрос, у меня есть таблица с разными ячейками в ячейках TextField по нажатию на кнопку в ячейке переход на...

Как передавать данные между контроллерами Tab Bar-a - Objective-C
Как передавать данные между контроллерами Tab Bar и отслеживать нажатие кнопки например в первом контроллере чтоб менять badge второго Есть...

Проблемы с контроллерами - Objective-C
ViewController.h: #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property int a; @end;

Передача данных между экранами - Objective-C
Как в ios правильнее всего передавать данные между экранами? Может есть какой-то аналог intent'a из android?

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

Передача переменной между страницами. - C# ASP.NET
Доброго времени суток! Такая проблема: есть мастер-страница на которой есть переменная (wuC)(это просто string в .cs файле), как её...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
31.07.2014, 14:48     Передача переменной между контроллерами #2
Попробуйте немного по-другому. Во втором вьюконтроллере создайте weak переменную, тип переменной - ваш первый класс. Называться будет как-нибудь типа previousViewController. Когда в первом классе инициализируете второй класс, перед переходом на него добавьте
Objective-C
1
secondClass.previousViewController = self;
Дальше при работе во втором классе напишете
Objective-C
1
_previousViewController.mapAddress = @"адрес";
Должно работать
Melzas
38 / 38 / 4
Регистрация: 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 и перезаписывает пустой первый.

На этапе обучения конечно сойдет любой подход, но на будущее нужно создавать класс модели, который будет хранить данные, и с помощью которого контроллеры будут "общаться".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 15:51     Передача переменной между контроллерами
Еще ссылки по теме:

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

Передача значения переменной между методами - C#
Всем Доброго Времени Суток! Предположим, у меня при нажатии на кнопку формируется переменная N - рандомное число. private void...

Передача значения переменной между процедурами - C++ Qt
Переменная imgaddress передается в функцию recieveData из другой формы. Функция recieveData возвращает переменную Faddress и должна...

передача значения переменной между формами - Delphi
почему-то значение переменной во второй форме не определяется (равно 0) // modul_1; var NastrForm1: TNastrForm1; ...

Нужен совет\подсказка по связи между 2мя контроллерами - AngularJS
Приветствую, требуется совет\подсказка по ангулару, суть в чем - есть 2 контроллера ничем не связанные кроме родительского модуля, грубо...

Ошибка в коде.Передача переменной между формами - C#
Всем здравствуйте. Не думала, что может быть так много вопросов, создавая проект. Вроде все делаю как надо, а он не работает. Проблема вот...


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

Или воспользуйтесь поиском по форуму:
heroii2009
16 / 6 / 0
Регистрация: 13.03.2012
Сообщений: 196
31.07.2014, 15:51  [ТС]     Передача переменной между контроллерами #4
Я все сделал, спасибо большое, была мелкая запара, кое что не учел ))
Yandex
Объявления
31.07.2014, 15:51     Передача переменной между контроллерами
Ответ Создать тему
Опции темы

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