0

您好我正在尝试从另一个视图控制器调用一个方法,它正在工作但没有显示在主屏幕上。日志显示该方法正在运行,但更有可能在我的控制器的新实例上运行。

这是我的 ViewController 类中的方法

//.h First
{
- (void)updateCells;
}

//.m First
- (void)updateCells
{
//Code in here
}

在另一个(第二个)视图控制器调用该方法的方法中:

ViewController *viewController = [[ViewController alloc] init];

    dispatch_async(dispatch_get_main_queue(), ^{
        [viewController updateCells];
    });

我尝试dispatch_async让它在屏幕上执行 updateCells,但是调用了该方法并且其中没有显示任何内容。我不应该创建一个新viewController实例吗?如果是,我应该怎么做?谢谢我对不同类的调用方法如何工作不熟悉。

4

1 回答 1

1

如果你想让你邻居的狗翻身,你去磅,买一条新狗,大喊“翻身!” 对着它,然后朝头部开枪,然后去你邻居家,期待发现她的狗正在翻身?因为这就是你在这里所做的。

如果您想要一些现有的视图控制器updateCells,您需要对该现有视图控制器的引用,以便您可以向它发送updateCells消息。

你正在做的是创建一个新的视图控制器,向它发送updateCells消息,然后让它被释放。为什么你会期望这会对现有的视图控制器产生任何影响?

“你”(意思是需要发送方法的updateCells方法)如何获得对现有视图控制器的引用完全取决于您的特定应用程序。如果您需要帮助确定“您”应该如何获得对该现有视图控制器的引用,请编辑您的问题以包括所涉及的视图控制器的实际类名等详细信息(因为这样更容易谈论它们),并且这些类的现有实例是如何创建的。

于 2013-10-02T19:03:19.840 回答