【问题标题】:calling functions and passing information between views调用函数并在视图之间传递信息
【发布时间】:2013-01-30 03:30:13
【问题描述】:

提前感谢您的帮助!

在我的项目的主 ViewController.m 中,我添加了一个自定义的 tableView,如下所示:

messageController = [[MyMessagesController alloc] initWithStyle:UITableViewStylePlain];
[self addChildViewController:messageController];
[self.view addSubview:messageController.view];

然后,在 MyMessagesController.m 部分 tableView didSelectRowAtIndexPath: 我想编写将在创建它的 ViewController.m 中生效并添加为 childViewController 的代码。

如何从 MyMessagesController.m 访问 ViewController.m 的功能?

我能否以某种方式将其设为委托,以便调用 [delegate functionName];? 我可以将信息传递回 ViewController.m 吗?通过发送 NSString 或 NSArray 或任何其他方式选择了 table 中的哪些行?

【问题讨论】:

    标签: iphone delegates tableview addchild


    【解决方案1】:

    是的,使用委托,如果您不确定如何最好地做到这一点,here 是 Apple 关于委托编程的一个很好的参考

    【讨论】:

    • 是的 - 这就是我要找的...我如何创建这个视图作为原始视图的代表,以便我可以与之交互?
    • 你声明一个包含你需要的方法、参数和所有方法的委托协议,声明你的子 VC 有一个遵守该协议的委托,并确保你的父 VC 实现该协议,然后像对任何其他具有委托的对象一样设置委托。所有这些都在我在答案中提供的链接中列出
    【解决方案2】:

    明白了,下面是如何将一个 viewController 变成另一个 viewController 的委托:

    在父控制器的.h中——

    @interface ViewController : UIViewController <NameOfDelegate> {
    

    在父控制器的 .m 中,一旦你创建了新视图 -

    newViewController.delegate = self;
    

    还有:

    - (void)functionToCall:(id)sender {
        NSLog(@"Function Called!!!");
    }
    

    在你要添加的 newViewController 的 .h 中 -

    @protocol NameOfDelegate;
    
    @interface newViewController : UIViewController/OR/TableViewController {
        id <NameOfDelegate> delegate;
    }
    
    @property (nonatomic, strong) id <NameOfDelegate> delegate;
    
    @end
    
    @protocol NameOfDelegate
    - (void)functionToCall:(id)sender;
    @end
    

    在 newViewController 的 .m 中 -

    @implementation newViewController
    
    @synthesize delegate;
    

    当您准备好调用委托中的函数时 -

    [delegate functionToCall:self];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多