Правильный способ передать объект на вид? - PullRequest
0 голосов
/ 21 декабря 2010

Я немного новичок в разработке для iPhone.Я сделал это, чтобы разработать красивое приложение, которое загружает данные XML из канала, отображает эти данные в UITableView, и, если пользователь нажимает на строку, должен быть подробный вид, который отображает данные.

Вот где я получилзастрял немного.Мне не понятно, как передать данные выбранной пользователем записи в мой подробный вид.Детальный просмотр вызывается через presentModalView ...

Я думал о:

  1. Вызов функции "setDetails: (PostingData *) myPosting" viewController моегоподробное представление.

  2. представление подробного представления пользователю путем вызова presentModalViewAnimated.

Представление представлено, но функция setDetails: аварийно завершает работу без какого-либовывод на консоль отладчика.

МОЙ ВОПРОС:

Как правильно передавать данные (в пользовательских объектах, например, в виде самостоятельного класса) из моего контроллера представления в контроллер представления, который должен отображать подробные данные.

Любая подсказка или помощь приветствуется.Я не могу заплатить вам за вашу помощь, но я становлюсь лучше и помогаю другим: -).

Ответы [ 2 ]

4 голосов
/ 21 декабря 2010

Метод 1: передать его в пользовательском методе инициализации

В вашем заголовочном файле объявите свойство

@property (nonatomic, retain) id myDataObject;

И в своей реализации используйте пользовательский инициализатор, подобный этому

 -(id)initCustom:(id)myObject;
    if(self = [super init]) {
        myDataObject = [myObject retain];
    }
    return self;
  }

Способ 2: использование свойства

Используйте @property в своем заголовке и @synthesize в вашем файле реализации .m

   [CustomUIViewController* newViewController = [[CustomUIViewControlleralloc] init];
   newViewConroller.myDataObject = myObject;
   [view addSubview:newViewController.view];
   [newViewController release];
2 голосов
/ 21 декабря 2010
  1. определяет пользовательский объект в вашем классе.@property(nonatomic, retain) MyClass * myClass;
  2. загрузить канал в NSMutableDictionary и предоставить его вашему классу
[YOUR_VIEW_CONTROLLER *yourViewController = [[YOUR_VIEW_CONTROLLER alloc] init];
yourViewController.PROPERTY_DEFINED_BEFORE = yourObject;
[view addSubview:yourViewController.view];
[yourViewController release];

cheers

...