我在使用模型segue打开标签栏控制器的标签栏控制器之前有一页(比如X)。标签栏控制器的第一个屏幕与X相同。
我想将数据从X传递到标签栏控制器的第一页。
很快,我想将数据从视图控制器传递到带有storyboard segue的标签栏控制器页面。对此有什么方法吗?
这是解决方案;
locationsHome* vc = [[locationsHome alloc] init];
UITabBarController* tbc = [segue destinationViewController];
vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];
答案 0 :(得分:9)
这就是我解决问题的方法。您可以使用此方法将数据从ViewController传递到TabBarController。
在prepareForSegue
方法
locationsHome* vc = [[locationsHome alloc] init];
UITabBarController* tbc = [segue destinationViewController];
vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];
像这样:
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSString * segueIdentifier = [segue identifier];
if([segueIdentifier isEqualToString:@"tabbarGo"]){
locationsHome* vc = [[locationsHome alloc] init];
UITabBarController* tbc = [segue destinationViewController];
vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];
etc...
}
}
答案 1 :(得分:2)
//if sent to First Tab of Tab Bar Controller
UITabBarController *tabBarController = segue.destinationViewController;
UINavigationController *navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
createTeamViewController *controller = (createTeamViewController *)[[navigationController viewControllers] objectAtIndex:0];
controller.userProfile = self.userProfile;
答案 2 :(得分:0)
将属性添加到目标视图控制器(子类标签栏控制器),然后在源视图控制器中,实现prepareForSegue
以将信息传递到目标控制器。然后,您可以让目标视图控制器的viewDidLoad
对源视图控制器的prepareForSegue
中传递给它的数据进行操作。
答案 3 :(得分:0)
对于 Swift 2.2 ,我必须以这种方式修改已接受的答案
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if (segue.identifier == "userAccountSegue")
{
var firstTabViewController: UserAccountViewController = UserAccountViewController()
let tabViewController: UITabBarController = segue.destinationViewController as! UITabBarController
firstTabViewController = (tabViewController.customizableViewControllers![0] as! UserAccountViewController)
firstTabViewController.userObj = arrayForTable![selectedIndex] as? User
}
}
注意:提示上面的代码片段