将数据传递给标签栏控制器中的控制器

时间:2015-03-09 17:47:33

标签: ios iphone swift

我试图将数据从视图控制器传递到另一个包含在标签栏控制器中的viewController。我的segue从第一个视图控制器连接到标签栏控制器(容器)。每当执行segue时,它实际上都不会将数据传递给下一个视图控制器。但是,当我将segue直接从第一个视图控制器连接到下一个视图控制器时,它成功传递了数据。但问题是它没有显示标签。我的问题是,如何将数据传递给标签栏控制器的viewcontroller并仍显示底部的标签?我使用prepareForSegue方法并初始化nextViewController而不是标签栏控制器。我在这里先向您的帮助表示感谢!

3 个答案:

答案 0 :(得分:0)

您可以使用NSuserDefaults存储数据,然后在任何控制器中使用它。

答案 1 :(得分:0)

建议不要将数据从一个视图控制器传递到UITabBarController中的另一个视图控制器,最好使用任何可用的存储选项从一个视图控制器保存更改并从另一个视图控制器获取值。这样,您可以使视图控制器彼此独立并且整齐的代码。

答案 2 :(得分:0)

您可以在以下委托方法

中尝试以下方法,为tabbarcontroller设置委托
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{

   if ([tabBarController selectedIndex] == seconviewcontrollerindex){

     NSArray *viewControllers = [tabBarController viewControllers];
     //This array contains all the viewcontrollers available in that tab bar controller
     //By getting viewcontroller of perticular index you can set values here

   }
}

注意:不确定这是否是完美的方法,所以也请寻找其他答案。