Отправить данные в другое представление с помощью встроенного UITabBarController? - PullRequest
0 голосов
/ 07 декабря 2010

Я создал приложение панели вкладок, используя Xcode, который представляет собой два представления.

Вторым видом является UITableViewController.

Я пытаюсь отправить данные в это представление, когда нажата вторая вкладка. Я делегировал панель вкладок моему классу AppDelegate и реализовал эту функцию:

-(void)tabBarController:(UITabBarController*)tabBarController didSelectViewController:(UIViewController*)viewController
{
    // Override point for customization after application launch.
    statisticsViewController* assignmentListcont = [statisticsViewController alloc];

    NSManagedObjectContext* context = [self managedObjectContext];

    assignmentListcont.managedObjectContext = context;

    [assignmentListcont release];

}

Второй вид отображается нормально, но данные не были переданы. Я представляю это, потому что я не запрограммировал переход второго представления, но я не уверен, как это сделать, если у меня уже есть файл .xib, делающий это для меня? Есть ли способ просто передать данные без проблем или даже получить данные один раз в представлении?

Ответы [ 2 ]

0 голосов
/ 21 июня 2012

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

UITabBarViewController *var = [self.storyboard   instantiateViewControllerWithIdentifier:@"name"]; //I select the UITabBarController
otherViewController *var2 = [var.childViewControllers objectAtIndex:0]; //I Select the first ViewController from that UITabBarController
var2.variable = @"value";
[self.navigationController pushViewController:var animated:YES];
0 голосов
/ 07 декабря 2010

Вы можете использовать уведомления.

Если вы хотите получить данные, укажите это в viewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                      selector:@selector(yourSelector:) 
                                      name:@"addedData" 
                                      object:nil];

Затем реализуйте метод, который получает эти данные:

- (void)yourSelector:(NSNotification *)notification {
         Foo *foo;
     foo = [notification object];
    //do something else
}

Теперь в классе, из которого получены данные, вы публикуете уведомление о создании новых данных. Кроме того, вы передаете данные, которые вы хотите получить другим методом.

[[NSNotificationCenter defaultCenter] postNotificationName:@"addedData" 
                                      object:foo];
...