Как вы получаете значение сегментированного элемента управления на обратной стороне для расчета основного вида? Обновлено

код не помог, просто посмотрите ниже


person Jason    schedule 12.02.2011    source источник
comment
Создает ли основной вид вид с обратной стороны? Где и является ли обратная сторона иваром в mainview.h?   -  person    schedule 13.02.2011
comment
Это приложение-шаблон утилиты в SDK. Я еще не создал переменную, просто пытаюсь понять, как получить значение и присвоить ему переменную. Надеюсь, я правильно понял ваш вопрос?   -  person Jason    schedule 13.02.2011
comment
Это не похоже на популярный вопрос, я нигде не смог найти, как это сделать. Просто есть шаблон утилиты из SDK и попытка получить значение моего контроллера сегмента с обратной стороны. Кажется достаточно простым, но еще предстоит узнать, как. Может кто-нибудь, пожалуйста, уделите несколько минут, чтобы помочь мне. Буду весьма признателен за это!!   -  person Jason    schedule 15.02.2011
comment
Получил это, добавив метку в моем представлении, которую я тоже пытаюсь отправить... поэтому в mainview.m я добавил - (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller { [self dismissModalViewControllerAnimated:YES]; //Gets the title of segmented control. RiseSegPrefLabel.text =[controller.RiseSegmentedControl titleForSegmentAtIndex:controller.RiseSegmentedControl.selectedSegmentIndex]; TredWidthField.text = [controller.TredSegmentedControl titleForSegmentAtIndex:controller.TredSegmentedControl.selectedSegmentIndex]; } Теперь просто возьмите значение   -  person Jason    schedule 17.05.2011
comment
Продолжение... с лейбла, и это работает. :)   -  person Jason    schedule 17.05.2011
comment
stackoverflow.com/ вопросы/5529469/   -  person    schedule 25.02.2012


Ответы (1)


Создайте переменную в своем контроллере (не в своем представлении, свяжите свои действия из своего представления с контроллером в построителе интерфейсов). Затем вы можете сделать две вещи:

а) При этом:

-(IBAction)CalculateButton:(id)sender

срабатывает. Позвольте контроллеру получить значения с обратной стороны и выполнить расчет.

б) Создайте объект модели (возможно, очень продвинутый для размера приложения, но это хороший дизайн и лучшая практика)

@interface CalculateObject : NSObject {
   //Some variables
}
//@property for all variables

- (...) doCalculation;
@end

Когда элементы управления сегментом изменяются и контроллер получает действие, вызовите правильный сеттер в вашей модели. Затем, когда вызывается кнопка расчета. Просто вызовите метод doCalculate.

Примечание. Я не уверен, знаете ли вы о шаблоне Model-View-Controller, но если вы не видите:

http://en.wikipedia.org/wiki/Model–View–Controller

person Mats Stijlaart    schedule 16.02.2011
comment
Извините, все в контроллерах, обновил файлы .h и .m, чтобы отразить это, это как-то меняет код? Кроме того, я пытался объявить сегментированный контроллер как переменную, но продолжаю создавать указатель без ошибки приведения. - person Jason; 17.02.2011
comment
На самом деле код не должен меняться, меняются только обязанности. Контроллер владеет всеми/представлениями. Он может читать значения своего представления. Указатель без приведения означает, что вы присваиваете значение другого типа, может быть целым числом для NSNumber или NSString. Проверьте типы переменных в вашем задании. - person Mats Stijlaart; 17.02.2011
comment
Таким образом, этот метод будет использоваться в контроллере Flipsideview или контроллере Mainview? - person Jason; 17.02.2011
comment
Не совсем понимаю, как это ответило на мой первоначальный вопрос? - person Jason; 22.02.2011
comment
Прости. Моя мисс понимание. У вас есть два контроллера. 1, когда сегмент изменяется, сохраните значение в вашем обратном контроллере (результат вашего метода valueChanged), затем получите доступ к его значению из MainViewController через FlipSideViewController.theValue, затем выполните расчет. 2. Сделайте модель, как я описал ранее. Разделите этот объект между обоими контроллерами и реализуйте метод вычисления. Установите свойство ModelObject в FlipSideViewController из MainController, чтобы они оба могли получить к нему доступ. Затем, когда вызывается действие calculateButton, получите значения из модели. - person Mats Stijlaart; 22.02.2011
comment
на самом деле я сохраняю, используя NSUserDefaults, а не действие valuechanged. Прямо сейчас я не думаю, что valuechanged что-то делает, я подумал, что это то, что я мог бы назвать этим на главном экране. - person Jason; 23.02.2011
comment
Я попробовал то, что предложил Матс, и еще не нашел способ заставить его работать. Если кто-то понимает, о чем говорит Матс, не могли бы вы рассказать подробнее? Боюсь, это расплывчатый ответ для новичка, и мне еще предстоит найти кого-нибудь, у кого есть твердый ответ на этот вопрос. Я погуглил, прочитал много книг и просмотрел сайт разработчиков Apple, и мне еще предстоит найти, как это сделать. Спасибо. - person Jason; 10.03.2011
comment
Посмотрите еще раз код для -(IBAction)CalculateButton. Если вы также хотите узнать, как это делается, пожалуйста, проголосуйте в левом верхнем углу! - person Jason; 11.03.2011