iPhone实用程序应用程序,从FLipSideView到MainView的连接?

时间:2011-04-03 12:05:50

标签: iphone xcode view

我正在尝试学习Objective-C和iPhone编程,但我遇到了问题。我有一个实用程序应用程序,我在MainView上有一个文本和一个按钮,当我单击它时更改文本。简单,工作得很好。但是,如果我不想将按钮放在FlipSideView的“背面”,仍然可以更改前端(MainView)上的文本,该怎么办?如何让观点一起交谈?我尝试了很多不同的东西,并寻找一件衣服,但似乎无法弄明白。

如果有人有安装,或者可能是教程/示例的链接,那会很棒。

1 个答案:

答案 0 :(得分:1)

我想您已经使用了在MainViewController中实现以下方法的模板:

- (IBAction)showInfo:(id)sender {    

    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
    controller.delegate = self;
...
}

正如您所看到的,它将FlipSideController的委托设置为MainViewController的实例。

一种方法是将动作放入FlipSideViewController,如下所示:

- (IBAction)changeTextInMainView
{
    [(MainViewController *)self.delegate changeText];
}

触摸背面的按钮时触发。你必须在IB中连接它,并将方法添加到标题中。

然后在MainViewController

中实施类似的内容
- (void)changeText
{
    self.myLabel.text = @"text changed to this";
}

也可以将此方法添加到标题中。

另一种更优雅的方法是将标签的文本保存在属性中(可能在它自己的模型类中),可以从任何视图访问,通过引用将其传递给控制器​​。然后从每个viewController添加一个Key Value Observer到属性,该属性应该显示文本并更新视图。