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

Posted

技术标签:

【中文标题】iPhone 实用程序,从 FLipSideView 到 MainView 的连接?【英文标题】:iPhone utility application, connection from FLipSideView to MainView? 【发布时间】:2011-04-03 12:05:49 【问题描述】:

我正在尝试学习 Objective-C 和 iPhone 编程,但遇到了一个问题。我有一个实用程序应用程序,我的 MainView 上有一个文本,还有一个按钮,当我单击它时会更改文本。很简单,而且效果很好。但是,如果我不想将按钮放在 FlipSideView 的“背面”上,并且仍然让它更改正面(MainView)上的文本怎么办?我如何让意见一起讨论?我尝试了很多不同的东西,并搜索了一个答案,但似乎无法弄清楚。

如果有人有答案,或者可能是教程/示例的链接,那就太好了。

【问题讨论】:

【参考方案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 到应该显示文本并更新视图的属性。

【讨论】:

Thnx 的答案,但它说“使用未声明的标识符(MainViewController *)”。我已经设置好了,就像你描述的那样。 在您的 FlipsideViewController.m 文件中将#import "MainViewController.h" 直接放在#import "FlipsideViewController.h" 之后的新行中。

以上是关于iPhone 实用程序,从 FLipSideView 到 MainView 的连接?的主要内容,如果未能解决你的问题,请参考以下文章

Iphone 中的实用程序应用程序

iPhone 配置实用程序未能找到“Apple 移动设备支持”

jQuery mobile - phonegap - iPhone - 实用程序

是否有一个 iPad/Phone 应用程序可以捕获控制台日志(来自 iPhone 配置实用程序)[关闭]

如何从命令行在 iPhone 上启动 OCUnit 测试

ios-sim 命令启动 iPhone 6 或 iPad 6