在不同的视图控制器中执行动作
Posted
技术标签:
【中文标题】在不同的视图控制器中执行动作【英文标题】:executing an action in a different view controller 【发布时间】:2014-02-11 02:55:12 【问题描述】:在我的应用程序中,我正在尝试创建一个带有按钮的按钮。我现在的代码如下:
- (IBAction)doneTextField:(id)sender
YourShortcutsViewController *YSVC2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
YSVC2.stringFromTextField = self.textField.text;
[self presentViewController:YSVC2 animated:YES completion:nil];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 100, 50);
[btn addTarget:self action:@selector(newButtonClicked) forControlEvents:UIControlEventTouchUpInside];
[btn setTitle:@"FaceTime" forState:UIControlStateNormal];
[self.view addSubview:btn];
这可行,但我需要添加的按钮添加到不同的视图控制器,而不是代码所在的视图控制器。 我该怎么做? 谢谢
【问题讨论】:
【参考方案1】:您需要创建一个函数来在新的视图控制器中添加按钮:
在 YourShortcutsViewController.h 中:
-(void)addFaceTimeButton:(UIButton*);
在 YourShortcutsViewController.m 中:
-(void)addFaceTimeButton:(UIButton*)
[self.view addSubview:btn];
然后将代码更改为:
- (IBAction)doneTextField:(id)sender
YourShortcutsViewController *YSVC2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
YSVC2.stringFromTextField = self.textField.text;
[self presentViewController:YSVC2 animated:YES completion:nil];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 100, 50);
[btn addTarget:self action:@selector(newButtonClicked) forControlEvents:UIControlEventTouchUpInside];
[btn setTitle:@"FaceTime" forState:UIControlStateNormal];
[YSVC2 addFaceTimeButton:btn];
【讨论】:
以上是关于在不同的视图控制器中执行动作的主要内容,如果未能解决你的问题,请参考以下文章