2014-01-26 2 views
1

Я пытаюсь перечислить объект из ячейки таблицы в UITabBarController. Мой код для отправки SEGUE к контроллеру представления заключается в следующем:Как перечислить объект в UITabBarController

#import "DetailViewController.h" 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"UpdateContacts"]) { 
     NSManagedObject *selectedDevice = [self.contactarray objectAtIndex:[[self.tableView indexPathForSelectedRow] row]]; 
     DetailViewController *destViewController = segue.destinationViewController; 
     destViewController.contactdb = selectedDevice; 
     refreshControl = nil; 
    } 
} 

Также в DetailsViewController.h I'm добавив contactdb свойство это один работает нормально, теперь я не знаю, как непосредственно перейти к его a UITabBarController, поэтому я могу получить к нему доступ из моих 2 контроллеров представления, которые у меня есть в UITabBarController.

+0

Помните, чтобы избежать благодарственные слоганы в вопросах, вы можете прочитать, почему здесь: «[В случае, если„Привет“,«спасибо, 'taglines и приветствия удаляются из сообщений?] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts) " – veducm

ответ

0

Для этой цели я обычно храню одноэлементный объект, который отображается в любом месте проекта (makin #import in .pch file). Затем я объявляю все необходимые предложения, которые хочу разделить между разными объектами (например, контроллерами), и использовать их, назначая значения и доступ. Например, в prepareForSegue я бы назначил свойство contactdb, объявленное в этом общем одноэлементном объекте, а затем получил значение от другого контроллера.

+0

, так что theres нет способа напрямую передать его с помощью segue в моем контроллере tabbar, а затем сделать его доступным для моих контроллеров просмотра? –

1

Я не знаю, является ли DetailViewController вашим TabBarController вы имеете в виду?

Вообще говоря, если вы хотите передавать данные между контроллерами представлений, где поток немного сложнее обычного, вы можете использовать шаблон уведомления/прослушивателя. Например, в прохождении контроллера вы могли бы сделать что-то вроде этого:

[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REFRESH 
                object:contactDb]; 

В вашей приемной контроллере, вы зарегистрируете слушать уведомления, как это:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(gotData:) 
              name:NOTIFICATION_REFRESH 
              object:nil]; 

И в том же контроллере, вот код, чтобы захватить это уведомление и объект:

- (void)gotData:(NSNotification *) notification { 
    NSObject *myData = [notification object]; 
} 

Вам нужно будет определить типы уведомлений в заголовке, как это:

extern NSString* const NOTIFICATION_REFRESH; 

И это реализация в файле .m, как это:

NSString* const NOTIFICATION_REFRESH = @"notificationRefresh"; 
Смежные вопросы