2012-09-03 41 views
0

我会尝试与走出困惑解释:我使用的是Three20库Three20 InvalidateModel

我有一个包含厦门国际银行和类创建一个“弹出”一个PostEdit类调用编辑后(下图) ,在现有视图(PostSearch)上,以便用户在尝试编辑他们创建的论坛时不必离开屏幕。

因此,当用户按下发送按钮并将数据发送回服务器时,我想invalidateModel返回PostSearch类(Model/DataSource)。这是我不知道该怎么做的地方。 我甚至在我的PostEdit类中取得了成功。

PostSearch *post = [[PostSearch alloc] init]; 
    [post Invalidate]; 
    [post invalidateModel]; 
    [post invalidateView]; 
    [post release]; 

enter image description here

+0

您能否解释一下关于PostEdit和PostSearch之间的关系以及当用户点击完成时你正在尝试做什么? – sergio

+0

两者之间唯一的关系就是上面的图片只是一种编辑论坛发帖的方式。当用户点击完成时,我唯一无法弄清楚的是如何invalidateModel(Three20)。无效模型在PostSearch类中,我想从PostEdit类调用它。 – Duny

回答

0

我不知道我明白你正在尝试做的;在任何情况下,我都会尝试回答,假设PostSearch是位于PostEdit下的控制器;在编辑帖子并单击完成后,您想要更新PostSearch。

如果这是正确的,那么您需要做的是访问已经存在并且当前显示在PostEdit下的PostSearch对象。例如,您可以:

  1. 当您创建PostEdit时传递对PostSearch的引用;那么在完成按钮处理程序中,您将使其模型无效;或者,

  2. 注册您的PostSearch对象以获取通知(通过NSNotificationCenter)PostEdit在点击完成时将触发;或者,

  3. 使用“蛮力”的方法,并在您的PostSearch viewWillAppear做无效。

我从来没有使用过invalidateModel方法。我做什么,当我需要刷新我的数据是:

self.model = nil; 
self.model; 

你也可以试试这个。

+0

我试过了,我甚至试着调用一个定时器来调用[[self invalidate]],定时器被调用,但[self invalidate]没有做任何事情,它只会在类中调用该方法时才起作用。如果有办法做到这一点。 – Duny

+0

我提出了三种不同的方法让你从课堂内部调用这个方法......如果你选择一种方法并尝试一下,我可以进一步帮助它。 – sergio

+0

我已经尝试了所有这些,但仍然没有收到任何东西。这让我感到困惑。 – Duny