我已经尝试过所有可以解决问题的方法,因为我是新手我没有得到明确的答案。 这是我的第一个View控制器
@implementation ViewController
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"textAdd"]) {
TextAddViewController *tv=[[TextAddViewController alloc]init];
if ([self.text isEqualToString:@" "]) {
tv.usingText.text=@" ";
}
else{
tv.usingText.text=self.text;
}
}
}
-(IBAction)GetttingText:(UIStoryboardSegue*)segue
{
TextAddViewController *getText=segue.sourceViewController;
[self AddTextToCanvasWithGesture:getText.usingText];
}
-(void) LaunchText
{
[self performSegueWithIdentifier:@"textAdd" sender:self];
}
-(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];
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[holderView addGestureRecognizer:pinchRecognizer];
pinchRecognizer = nil;
UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)];
[rotationRecognizer setDelegate:self];
[holderView addGestureRecognizer:rotationRecognizer];
rotationRecognizer = nil;
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[holderView addGestureRecognizer:panRecognizer];
panRecognizer = nil;
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];
}
这是我的第二视图控制器
#import "TextAddViewController.h"
#import "ViewController.h"
@interface TextAddViewController ()
{
}
@property (weak, nonatomic) IBOutlet UILabel *noting;
@end
@implementation TextAddViewController
-(void)viewDidLoad
{
[super viewDidLoad];
ViewController *vm=[[ViewController alloc]init ];
// [self.noting setText:@"Hi"];
[self.noting setText:vm.ShowText.text];
[self.usingText setText:vm.text];
}
我的代码非常适合在Label上显示textview文本,但我想再次编辑标签文本,所以我必须在同一文本视图中显示标签文本。问题是它没有在textview中显示文本。每次textview都是空的。
答案 0 :(得分:0)
你做错了几件事。主要的是您实例化TextAddViewController
的新实例。如果您不熟悉面向对象编程,这可能有点难以理解(我建议following this link (youtube)并在继续使用xcode之前学习更多内容。)
您正确调用prepareForSegue方法,该方法将获取您创建的故事板segue,并将该seg中的所有数据标记到destinationViewController
。您的问题是您实际上并未获取destinationViewController
。相反,你正在创建一个TextAddViewController
的新实例,它只会在内存中无所事事。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"textAdd"]) {
TextAddViewController *tv=[[TextAddViewController alloc]init];
if ([self.text isEqualToString:@" "]) {
tv.usingText.text=@" ";
}
else{
tv.usingText.text=self.text;
}
}
}
所以代替这个
TextAddViewController *tv=[[TextAddViewController alloc]init];
if ([self.text isEqualToString:@" "]) {
tv.usingText.text=@" ";
}
你应该这样做:
TextAddViewController *vc = [segue destinationViewController];
[vc setMyObjectHere:object];
在您的情况下,object
将是您要设置的字符串。
这样,您就不需要GetttingText
IBAction。
我希望这可以帮助你。如果您需要一些澄清,请随时询问。另一个建议是继续阅读Apple Documentation。它目前可能没有意义,但最终你将能够从文档中找到这样的东西