Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 调用方法以查看控制器委托,won';不要忽略模态视图_Objective C_Ios5_Delegates_Xcode4.3 - Fatal编程技术网

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;