我已经尝试了一切可以做的事情来解决这个问题,因为我是新手,我没有得到明确的答案。 我有两个 View Controller 。我将textview的数据传递给第二个 Controller 并将其显示在UILabel中,没有问题。但现在我必须再次将标签文本发送到同一个 TextView 进行编辑。问题是,当我双击标签时,它会将我导航到第一个 View ,但不会在 TextView 中显示文本。
-(void)AddTextToCanvasWithGesture:(UITextView*)takenText
{
CGRect rect = CGRectMake(35, 60,takenText.contentSize.width,takenText.contentSize.height);
UIView *holderView = [[UIView alloc] initWithFrame:rect];
rect.origin.x=0;
rect.origin.y=0;
UILabel *textLabel=[[UILabel alloc]initWithFrame:rect];
[textLabel setText:takenText.text];
self.text=takenText.text;
[textLabel setTextColor:takenText.textColor];
[textLabel setFont:[UIFont fontWithName:takenText.font.fontName size:takenText.font.pointSize]];
[textLabel setNumberOfLines:0];
[textLabel sizeToFit];
[holderView setTag:1];
[textLabel setTag:1+1];
[holderView addSubview:textLabel];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[holderView addGestureRecognizer:tapRecognizer];
tapRecognizer = nil;
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(LaunchText)];
[doubleTapRecognizer setNumberOfTapsRequired:2];
[doubleTapRecognizer setDelegate:self];
[holderView addGestureRecognizer:doubleTapRecognizer];
holderView.userInteractionEnabled=YES;
[tapRecognizer requireGestureRecognizerToFail:doubleTapRecognizer];
}
我必须将此标签的文本发送到第二 View Controller 的 TextView
-(void) LaunchText{
[self update:self.text];
[self performSegueWithIdentifier:@"textAdd" sender:self];
}
-(void)update:(NSString*)string{
TextAddViewController *txt=[[TextAddViewController alloc]init];
txt.usingText.text=string;
}
我在第二个 View 中获取这个字符串
-(void)viewDidLoad
{
[super viewDidLoad];
ViewController *vm=[[ViewController alloc]init];
self.usingText.text=vm.text;
}
最佳答案
在 SecondViewController
中重写以下方法,并将 UILabel
值传递给 FirstViewController
。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"prepareForSegue is called");
if ([[segue identifier] isEqualToString:@"CONTROLLER_SEGUE"]) {
TextAddViewController *vc = [segue destinationViewController];
[vc.usgingText setText:@"SOME TEXT"];
}
}
关于ios - 从一个 View Controller 传递字符串并将其显示在 ios 的 UITextView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26418648/