在viewOne中,我有labelOne,labelOne有文本。我想要viewTwo中的labelTwo从viewOne中的labelOne获取它的文本。
我该如何实现这一点?
更多信息-我有两个独立的视图控制器,由一个UIPageViewController控制。
您可以向UILabel添加标签,并使用
UILable *l = ((UILable*)view.viewWithTag)
从视图中获取标签
或者在其子视图中迭代检查是否找到UILabel
for (UIView *subview in view.subviews)
{
if ([subview isKindOfClass:[UILable class]) {
UILable *l = (UILable *)subview;
}
}
-
在情节提要中,首先选择视图控制器,然后选择控件从第一个视图拖动到第二个视图控制器
-
从您看到的列表中选择Push。
-
选择两个视图之间新添加的行控制器。
-
指定名称。(如"PushSegue")
点击按钮,在您的第一视图控制器中添加代码
[self performSegueWithIdentifier:@"PushSegue" sender:self];
然后添加PrepareForSegue 的代表
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"ListMenuSegue"])
{
SecondViewController *SecondVC = [segue destinationViewController];
userViewController.Lable_String=@"Text_to_send"; //You will Get error here for Lable_String ->"Property not found etc" Becuse
}
在您的secondViewController.h 中添加此代码
@property(strong,nonatomic)NSString *Lable_String;
然后在secondViewController.m 中打印字符串值
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",Lable_String);
}
您可以在viewTwo中创建label的属性。当您在viewOne中执行segue时,将labelOne文本分配给viewTwo的label属性。在viewTwodidLoad方法中,从属性label中获取文本,并将这些文本交给viewTwolabelTwo。
您可以像一样为每个标签添加标签
labelOne.tag = 1001;
在viewTwo类中,您可以获得labelOne
UILabel *labelOne = (UILabel *)[self.superview viewWithTag:1001];
如果在同一视图/视图控制器上同时添加viewOne和viewTwo,则此操作将有效。