Отправка данных из Mainview в Flipside? - PullRequest
1 голос
/ 14 марта 2011

Мне все еще тяжело с этой инкапсуляцией данных ...

Я знаю, что Flipside предназначен для настроек, а что нет, и что отправка данных с обратной стороны на mainview проста (для некоторых) или, может быть, даже встроена. Есть ли что-то в этом шаблоне flipside / mainview, который затрудняет или делает невозможным отправку данных из Mainview во Flipside?

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

В шаблоне утилит MainViewController (контроллер вида на лицевой стороне) создает FlipsideViewController (контроллер вида на тыльной стороне) в методе showInfo:.Вы можете передать любые данные, которые вам нравятся, в конструктор FlipsideViewContrller (конечно, при условии, что вы измените конструктор так, чтобы он принимал данные).

В качестве альтернативы, вы можете определить некоторые свойства в FlipsideViewController.После создания объекта (снова в showInfo:) вы можете установить эти свойства с данными, которые хотите передать.

Отредактировано в соответствии с комментарием @ Сэма:

В FlipsideViewController.h выопределите свойство для хранения данных, которые вы хотите показать.Здесь я делаю это NSString, но это может быть что угодно.

@property (nonatomic, retain) NSString *someDataToShow;

В MainViewController.m, после создания FlipsideViewController, вы установите свойство.Обратите внимание, это предполагает, что у вас есть метод computeDataToPassToFlipside, определенный в MainViewController, который возвращает NSString.

- (IBAction)showInfo:(id)sender
{    
    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
    controller.delegate = self;
    controller.someDataToShow = [self computeDataToPassToFlipside];
    // ...
}

Наконец, в FlipsideViewController.m вам нужно что-то сделать с данными, которые вы передалинедвижимость.Например, предположим, у вас есть UILabel с именем myLabel, для которого вы хотите отобразить свойство NSString.Я собираюсь предположить, что UILabel правильно включен и подключен к IBOutlet с помощью Interface Builder.

- (void)viewWillAppear:(BOOL)animated
{
    myLabel.text = self.someDataToShow;
}
1 голос
/ 14 марта 2011

В шаблоне Utility уже создан делегат для вас.

Чтобы получить некоторую полезную информацию о делегатах, посмотрите на этот вопрос:

Как делегат работает в target-C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...