iOS 5 Segue реализация - PullRequest
       7

iOS 5 Segue реализация

6 голосов
/ 29 сентября 2011

При реализации перехода между двумя контроллерами представления, как изменить свойство конечного контроллера представления, используя объект segue?В документации сказано, что это можно сделать внутри метода prepareForSegue: sender:.я попробовал, но не удалось

Ответы [ 4 ]

13 голосов
/ 07 октября 2011

Не знаю, если вам все еще нужен ответ на этот вопрос, но это был такой одинокий пост, и, если я прав, это больше не подпадает под NDA.Если я ошибаюсь, пожалуйста, преуменьшите свой ответ до забвения, так что начнем: я только что закончил делать то, что использует то, что вам нужно.Это код, который работает для меня:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"relevantSegueIdentifier"])
    {
        // [segue destinationViewController] is read-only, so in order to
        // write to that view controller you'll have to locally instantiate
        // it here:
        ViewController *upcomingViewController = [segue destinationViewController];

        // You now have a solid reference to the upcoming / destination view
        // controller. Example use: Allocate and initialize some property of
        // the destination view controller before you reach it and inject a
        // reference to the current view controller into the upcoming one:
        upcomingViewController.someProperty = [[SomePropertyClass alloc] initWithString:@"Whatever!"];
        upcomingViewController.initialViewController = [segue sourceViewController];
        // Or, equivalent, but more straightforward:
        //upcomingViewController.initialViewController = self;
    }
}

Это предполагает, что и someProperty, и initialViewController являются синтезированными средствами доступа к контроллеру представления назначения.Надеюсь, это поможет!

5 голосов
/ 21 октября 2011

Я написал учебное пособие, в котором приведены примеры кода для передачи информации на новую сцену и информации обратно со сцены с использованием делегирования, поэтому проверьте, что это должно решить вашу проблему. Раскадровка iOS 5: как использовать сегменты, сцены и статический контент UITableViews

0 голосов
/ 17 января 2014

То, что я использую в контроллере представления источника:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    UIViewController *upcomingViewController = [segue destinationViewController];
    upcomingViewController.view.tag = [[segue identifier] hash];
}

А затем в используемом контроллере представления назначения (использую, например, в viewDidAppear)

if(self.view.tag == [@"MySeqgueIdentifier" hash])
{
   // Do something here...
}

Это круто, поскольку вам не нужно создавать какие-либо свойства и т. д., и все работает прямо из конструктора интерфейсов.

0 голосов
/ 31 октября 2013

Я сделал видео на эту тему. Я надеюсь, что это помогает. http://full.sc/17yKkZF

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