我有一个带有两个标签的标签栏控制器:
当我点击openDifferentView时,我希望tabBar2View显示,并将值“test”(从tabBar1View.myvalue.text
)传递给txtInTab2
(在tabBar2View中)。
我看到使用[self.tabBarController setSelectedIndex:1]
显示的视图,但我不确定如何从此视图设置其文本字段的值。
我认为这是可能的:
UIViewController *tab2;
tab2 = [self.tabBarController.viewControllers objectAtIndex:1];
tab2.txtInTab2.text = "something"; //doesn't work
tab2.show; //don't know how to this
编辑:我已经在tabBar2View中为textfield添加了IBOutlet @ property / @ synthesize,在tabBar1View中添加了#import“tabBar2View.h”。
答案 0 :(得分:0)
UIViewController没有名为txtInTab2的属性。 txtInTab2是您添加到自己的UIViewController子类(您称之为TabBar2View)的属性。
代码基本上是正确的,但您需要将tab2定义为它实际上是什么类型的视图控制器。从下面的评论中,它实际上是一个导航控制器,所以你需要这样做:
#import "MyViewController.h"
UInavigationController *tab2;
tab2 = [self.tabBarController.viewControllers objectAtIndex:1];
//now lets get the frontmost view controller in the navigation controller
//which will (hopefully) be your custom view controller class
TabBar2View *viewController = (TabBar2View *)tab2.topViewController;
//now before we set the label, we need to make sure that the
//view controller's view has actually been loaded from its nib
//file. calling its view property forces it to load
[viewController view];
//now we can set the label
viewController.txtInTab2.text = @"something"; //this will work now
然后要实际显示它,你需要通过标签栏控制器这样做:
[self.tabBarController setSelectedIndex:1]; //show the second tab
答案 1 :(得分:0)
您需要使用代理人。我认为this将为您提供有关如何开始的良好帮助