我使用Xcode创建了一个标签栏应用程序,作为两个视图。
secound视图是一个UITableViewController。
我正在努力做的是在按下第二个标签时将数据发送到此视图。我已将Tab Bar委托给我的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文件为我做这个怎么做?有没有办法在没有问题的情况下传递数据,甚至在视图中检索一次数据?
答案 0 :(得分:0)
您可以使用通知。
在您希望接收数据的视图中,请将其放在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];
答案 1 :(得分:0)
我这样做是为了从一个视图控制器向另一个视图控制器发送一个值,希望它有所帮助
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];