【问题标题】:Move From UIView to View controller in button action在按钮操作中从 UIView 移动到 View 控制器
【发布时间】:2016-09-24 13:15:11
【问题描述】:
我在UIView 类中创建了一个按钮,我想将其移动到另一个视图控制器。当我按下按钮时,它应该移动到视图控制器。
我在UIView 课堂上有这个:
[_okButton addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside];
-(IBAction):(id)sender
{
SiteViewController *SiteVC2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"SiteVC2"];
}
请帮我做这件事。从 UIView 移动到 ViewController
【问题讨论】:
标签:
objective-c
uiview
uiviewcontroller
【解决方案1】:
您能告诉我您在哪里(我的意思是在哪个视图控制器中)将此 UIView 实例添加为子视图。
选项 1:需要为您的 UIView 子类编写委托并在视图控制器中实现委托。现在,当从 UIView 子类点击按钮时触发委托。在 viewcontroller 中的委托回调中,您可以移动到下一个 viewcontroller(SiteViewController)
选项 2:通过从导航堆栈中获取可见视图控制器并在获取的视图控制器上推送/呈现所需的视图控制器 (SiteViewController) 来查找最顶层的视图控制器。
如果两者都不符合您的要求,请回复我,我们将尝试其他几种可用方式
【解决方案2】:
[_okButton addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside];
-(IBAction)delete:(id)sender{
SiteViewController *SiteVC2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"SiteVC2"];
}
//If you want to change the navigation Controller
-(IBAction)delete:(id)sender{
SiteViewController * SiteVC2 = [self.storyboard instantiateViewControllerWithIdentifier:@"SiteVC2"];
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController: SiteVC2];
[self presentViewController:navigationController
animated:NO
completion:^{
}];
}
}