Objective c 调用方法以查看控制器委托,won';不要忽略模态视图
我设置了以下简单的视图控制器类Objective c 调用方法以查看控制器委托,won';不要忽略模态视图,objective-c,ios5,delegates,xcode4.3,Objective C,Ios5,Delegates,Xcode4.3,我设置了以下简单的视图控制器类 @protocol ThermoFluidsSelectorViewControllerDelegate; @interface ThermoFluidsSelectorViewController : UIViewController <UITextFieldDelegate> @property (weak, nonatomic) id <ThermoFluidsSelectorViewControllerDelegate> dele
@protocol ThermoFluidsSelectorViewControllerDelegate;
@interface ThermoFluidsSelectorViewController : UIViewController <UITextFieldDelegate>
@property (weak, nonatomic) id <ThermoFluidsSelectorViewControllerDelegate> delegate;
// user hits done button
- (IBAction)done:(id)sender;
@end
@protocol ThermoFluidsSelectorViewControllerDelegate <NSObject>
-(void) didFinishSelection:(ThermoFluidsSelectorViewController *)controller fluidID: (NSString *)fluidID;
@end
调用了“done:”方法(通过警报检查),但没有调用“didFinishSelection…”,因此视图不会返回主屏幕。有什么想法吗?听起来好像您还没有在主视图控制器中分配您的代理 在设置代理的主视图控制器中,应该有如下内容:
ThermoFluidsSelectorViewController *view = [[ThermoFluidsSelectorViewController alloc] init];
view.delegate = self;
在这里,您可以看到我创建了视图,然后将视图的委托设置回我自己
如果您没有创建Thermo。。。以编程方式查看控制器,但使用了故事板,则可以在主视图控制器的prepareforsgue:方法中设置委托:
// Do some customisation of our new view when a table item has been selected
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure we're referring to the correct segue
if ([[segue identifier] isEqualToString:@"MySegueID"]) {
// Get reference to the destination view controller
ThermoFluidsSelectorViewController *cont = [segue destinationViewController];
// set the delegate
cont.delegate = self;
希望这有帮助。这正是我忘记做的。刚刚看了另一篇文章,正要编辑我的文章。谢谢
// Do some customisation of our new view when a table item has been selected
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure we're referring to the correct segue
if ([[segue identifier] isEqualToString:@"MySegueID"]) {
// Get reference to the destination view controller
ThermoFluidsSelectorViewController *cont = [segue destinationViewController];
// set the delegate
cont.delegate = self;