所以我在Xcode中有一个应用程序,它有一个主视图控制器和一个设置视图控制器。我想在设置视图中有一个分段视图,触发主视图上的操作。设置视图控制器连接到它自己的类“settingsviewcontroller.h”,视图控制器连接到它自己的类“viewcontroller.h”。那么,我该如何做到这一点?我想要一个按钮在不同的视图中触发一个动作
回答
一种方法是定义一个协议:
SettingsDelegate.h:
@protocol SettingsDelegate
- (void)settingsUpdated:(NSDictionary *)newSettings
@end
包括用在您的视图控制器的这一头。让viewController符合这个协议。建立从设置控制器到视图控制器的弱参考,例如
SettingsViewController.m:
@interface SettingsViewController()
@property (readwrite, weak) id<SettingsDelegate> settingsDelegate;
@end
当settingscontroller被实例化,设置self.settingsDelegate
到ViewController。假设您创建从视图 - 控制的settingscontroller,这将是这样的:
viewController.m:
SettingsController *settingsController = [[SettingsController alloc] init];
settingsController.settingsDelegate = self;
// present the settingsController
在设置控制器,当设置被更新:
if (self.settingsDelegate) {
NSDictionary *newSettings = ...; // set this value
[self.settingsDelegate settingsUpdated:newSettings];
}
有关更多详细信息,请参阅Apple的使用协议:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html
*通过我不知道这是否是正确的,在所有
第一种方式:
尝试做的 - (IBAction为)...连接。我知道他们是不同的看法,但是也许你仍然可以从不同的响应者那里得到连接。
第二种方式:
尝试导入的.h/.m文件,这样就可以从其他类访问不同的变量等等
我已经尝试了这两件事。第一个根本不起作用,它没有任何意义。第二个是有道理的,但在我做完之后没有发生任何事情。我认为你必须这样做,然后做其他事情,但我不知道什么 – msweet168
你想让按钮触发的动作是什么? – user2779450
分段视图控制器的一侧是mph,另一侧是kmh,并且当它在mph上视图控制器中的标签显示为mph时,更改输出的公式将更改为使输出mph和km做同样的事情,但为kmh。 – msweet168
- 1. 添加一个UILabel作为UIButton的子视图不会触发按钮动作
- 2. 如何让一个按钮在jQuery中触发多个动作?
- 3. 我想在循环中的不同点触发一个响应
- 4. 如何在列表视图(Android)中触发一个按钮?
- 5. 触发一个按钮
- 6. 触发一个按钮WPF
- 7. JavaFX在按下按钮时触发一个动作
- 8. 想要在列表视图中添加两个浮动按钮
- 9. HTML/Javascript:从1个按钮触发2个不同动作
- 10. 我想要一个按钮来触发使用jquery/JavaScript的链接
- 11. Ruby on rails:触发同一控制器的另一个动作的按钮
- 12. 我在一个布局中有三个按钮,我想显示不同的视图
- 13. 我需要一个按钮来执行一个动作,但不会触发验证或刷新页面(JSF 2.0)
- 14. 在一个动作中观察多个视图的触动
- 15. 按钮在一个滚动型的TableView不会触发
- 16. 我需要能够按一个按钮发出一个报价
- 17. 我的滚动视图中的最后一个按钮无法注册触摸
- 18. 我想打一个视图
- 19. 我想在同一个列表视图中充气两个xml
- 20. 我有一个按钮,其背景我想要在Android
- 21. ios触摸从一个按钮移动到另一个按钮
- 22. 我想在javascript中制作一个简单的切换按钮
- 23. 在视图中添加一个按钮
- 24. 我想在wordpress中硬编码一个'随机发布'按钮
- 25. 我想问一下在不同的布局你的一个按钮
- 26. 想要下一个和上一个按钮在我的YTPlayerView,而锁定iPhone
- 27. 只需点击一个按钮即可显示视图。只要我点击按钮,视图移动在左边
- 28. 触发从一个视图到另一个视图的事件
- 29. 在C#中指定时间点击一个按钮的自动触发按钮#
- 30. 两个onClick函数在一个按钮中,想要发生一个接一个的点击函数
虽然我没有设置代理.h。那是什么。我是否必须制作类似于第二个应用程序delegate.h的东西? – msweet168
不,你只需要创建一个新的.h文件没有相应的.m文件。您在新的.h文件中需要的是** SettingsDelegate.h **下的三行。 – bneely
如果需要,我可以为您创建一个示例Xcode项目。 – bneely