【发布时间】:2016-09-25 22:42:55
【问题描述】:
我实现了将数据从 FirstViewController 传递到 SecondViewController 的委托方法。
首先,我在FirstViewController 中创建了一个text Field 和Button。其次,我创建了一个标签来显示 SecondViewController 中的数据。
应该如何工作:
用户将按下FirstViewController 中的按钮并将数据传递给secondViewController。此外,用户将使用 UISwipeGestureRecognizer 导航到第二个视图控制器,因此没有需要使用按钮转到第二个视图控制器。
我如何测试应用程序
1- 我运行应用程序。 --> 2- 我在文本字段中输入“Hello” --> 3- 我按下按钮 --> 4- 我滑动到第二个视图控制器查看数据 --> 5- 我在标签中看不到任何数据??
首先我创建了委托协议
FirstViewController.h
@class FirstViewController;
@protocol FirstControllerDelegate
-(void) updateLabel:(NSString*)string
@end
@property (weak, nonatomic) id<FirstViewControllerDelegate>delegate;
@property (weak, nonatomic) IBOutlet UITextField *TextField;
- (IBAction)button:(id)sender;
FirstViewController.m
@interface FirstViewController. ()
@end
@implementation ViewController1
@synthesize delegate;
@synthesize TextField;
-(void)viewDidLoad{
[super viewDidLoad];
}
- (IBAction)Button:(id)sender {
ViewController2 *vc2 = [[ViewController2 alloc] init];
vc2.stringfromTextfield1 = self.TextField.text;
}
SecondViewController.h
#import "SecondViewController.h"
#import "FirstViewController.h"
@interface SecondViewController : UITableViewController<FirstControllerDelegate>
@end
@property (weak, nonatomic) IBOutlet UILabel *Label;
@property (strong, nonatomic) NSString *stringfromTextfield1;
SecondViewController.m
@interface SecondViewController. ()
@end
@implementation SecondViewController
-(void)viewDidLoad{
[super viewDidLoad];
self.label.text = self.stringfromTextfield1;
}
感谢您花时间和精力帮助我
【问题讨论】:
-
如何显示第二个视图控制器,在哪里显示?我想知道您是否没有创建一个全新的
ViewController2对象。 -
我正在使用标签栏和滑动在这些视图控制器之间导航@Larme
-
然后不要像现在这样自行创建视图控制器。 @Larme 100% 正确。
-
@luk2302 任何建议如何使它工作
标签: ios objective-c uiviewcontroller delegates