【问题标题】:Delegation and Modal View Controllers委托和模态视图控制器
【发布时间】:2010-10-12 18:03:33
【问题描述】:

根据视图控制器编程指南,委托是关闭模式视图的首选方法。

按照Apple自己的Recipe示例,我已经实现了以下内容,但不断收到警告称找不到addNameController:didAddName方法...

NameDelegate.h
    @protocol NameDelegate
    - (void)addNameController:(AddName *)addNameController didAddName:(NSString *)name;
    @end

AddName.h
    @interface AddName : UIViewController {
        UITextField *nameField;
        id delegate;
    }
    - (IBAction)doneAction;
    - (id)delegate;
    - (void)setDelegate:(id)newDelegate;
    @property (nonatomic, retain) IBOutlet UITextField *nameField;
    @end

AddName.m
    - (IBAction)doneAction {
        [delegate addNameController:self didAddName:[nameField text]];
    }

    - (id)delegate {
        return delegate;
    }

    - (void)setDelegate:(id)newDelegate {
        delegate = newDelegate;
    }

ItemViewController.h
    #import "NameDelegate.h"
    @interface ItemViewController : UITableViewController <NameDelegate>{
    }
    @end

ItemViewController.m
    - (void)addItem:(id)sender {

        AddName *addName = [[AddName alloc] init];
        addName.delegate = self;
        [self presentModalViewController:addName animated:YES];
    }

    - (void)addNameController:(AddName *)addNameController didAddName:(NSString *)name {
        //Do other checks before dismiss... 
        [self dismissModalViewControllerAnimated:YES];
    }



我认为所有必需的元素都在正确的位置吗?

谢谢

【问题讨论】:

    标签: objective-c delegates ios4 modalviewcontroller delegation


    【解决方案1】:

    您尚未指定AddNamedelegate 属性必须符合NameDelegate 协议。

    AddName.h:

    中使用此代码
    #import "NameDelegate.h"
    
    @interface AddName : UIViewController {
        UITextField *nameField;
        id <NameDelegate> delegate;
    }
    
    @property(nonatomic, retain) IBOutlet UITextField *nameField;
    @property(nonatomic, assign) id <NameDelegate> delegate;
    
    - (IBAction)doneAction;
    
    @end
    

    【讨论】:

    • 谢谢...我还必须将 @class AddName 添加到 NameDelegate :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多