objective-c - 从另一个 ViewController 调用一个 ViewController 的实例方法

标签 objective-c ios uiviewcontroller delegates

我意识到这个问题在过去几年里至少每个月都会在 stackoverflow 上被问到死,但我仍然找不到解决方案。

我有两个源自 UITabBarController 的 ViewController。两者都是通过 Storyboard初始化的。我正在尝试从一个 VC 调用另一个 VC 的方法。当然是实例方法。

enter image description here

我听说过以下可能性:

1: NSNotifications

2:定义协议(protocol)并声明一个 VC 为另一个 VC 的委托(delegate)。

3: 实际上通过 RootViewController 以某种方式调用该方法。

我有通过 NSNotifications 工作的代码,但我不喜欢这个概念,并且我想了解正确的方法。我对可能性(3)最感兴趣,然后是(2)作为最后的手段。

我试图让 (2) 工作几个小时,但没有从另一个 VC 初始化委托(delegate) VC,我被难住了。 (由于 Storyboard而不是一个选项)。

(2)或(3)可能吗?怎么会这样?

如果两者都不可能,我对首选 iOS 架构有何误解?

最佳答案

是的,3 是可能的。假设您有两个 UIViewController 类,FooViewController(选项卡索引 0)和 BarViewController(选项卡索引 1)。假设您想从 BarViewController 调用 FooViewController-(void)doFoo 方法。

BarViewController中,执行[(FooViewController *)[self.tabBarController.viewControllers objectAtIndex:0] doFoo]

关于objective-c - 从另一个 ViewController 调用一个 ViewController 的实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13986199/

相关文章:

ios - 如何呈现 View Controller 并忽略所有其他 Controller ?

ios - viewDidLoad() 在 prepareForSegue() 完成之前被调用 : Swift

iOS - 将 NSDictionary 复制到 SQLite3

iphone - MkMapView 在触摸时放下别针

iphone - 检测wifi是否开启 - iOS

cocoa-touch - 隐藏的 UIView 方向更改/布局问题

ios - 音译/转置 NSString 中的字符

iphone - 如何在工作日的选择列表中设置重复的 UILocal 通知

ios - 是否可以在一个 xib 中创建多个单元格?

ios - 如何在按钮单击 ios Swift 上执行具有不同点的相同动画