我想从ViewControllerTwo回到ViewControllerOne。我创建了一个负责这样做的按钮,但我的问题是该按钮是添加到ViewControllerTwo的自定义UIView类的一部分,该按钮不是ViewControllerTwo主视图的一部分。
所以在自定义UIView类中,我有一个方法,如果点击按钮就会做出反应......
-(void)buttonClicked{
[SecondViewController performSegueWithIdentifier: "ShowFirstViewController" sender:nil];
}
当我这样做时,我得到一个错误:" performSegueWithIdentifier不是类的方法"这是有道理的。
那么我如何在两个视图控制器之间进行切换,其中负责segue的按钮实际上不是视图控制器的一部分,而是在另一个类中。
答案 0 :(得分:1)
我认为您可以让代理人回复require 'observer'
并在SecondViewController
中的委托回调方法中实施performSegueWithIdentifier
。
它是这样的:
在您的自定义UIView类接口上方创建一个像这样的协议
SecondViewController
然后在界面中创建一个属性
@protocol CustomViewDelegate <NSObject>
- (void)buttonDidTap;
@end
在您的自定义UIView * .m中添加此
@property (nonatomic, weak) id <CustomViewDelegate> delegate;
使协议符合-(void)buttonClicked{
[self.delegate buttonDidTap];
}
这样的
SecondViewController
在@interface SecondViewController: UIViewController <CustomViewDelegate>
中设置代理
viewDidLoadMethod
在视图控制器.m文件
中实现此方法-(void)viewDidLoad{
[super viewDidLoad];
self.yourCustomView.delegate = self;
}
我更多的是一个快速的人,我认为这应该可以正常工作。
答案 1 :(得分:0)