记住我目前的观点

时间:2013-01-02 12:32:27

标签: ios uiview

我实际上写了一个切换一些UIViews的方法。当我输入方法时,我必须知道哪个是我当前的视图,以从superview中删除这一个。我在头文件中为此目的声明了一个属性:

@property (weak, nonatomic) UIView *currentView;

在我的方法中更改为某个视图后,我想将此视图分配给属性,以便在我再次输入方法时使用它,并在请求时从superview中删除此视图。该方法如下所示:

...
nextView = [self loadNextView]; // the view is loaded from a NIB here
if (self)
{
    [self viewWillDisappear:YES];
    [[self currentView] removeFromSuperview];
    [[self view] addSubview:nextView];
    [self currentView] = [self nextView];
...

不幸的是编译器告诉我currentView在这里不可分配。还有另一种,希望更好的方式来记住我目的的治愈观点,还是应该采用完全不同的方式?

3 个答案:

答案 0 :(得分:0)

您无法分配函数或方法调用的值(它返回一个右值)。您必须使用属性访问器语法:

self.currentView = [self nextView];

或显式调用setter:

[self setCurrentView:[self nextView]];

答案 1 :(得分:0)

试试这个

替换

[self currentView] = [self nextView];

self.currentView = [self nextView];

答案 2 :(得分:0)

而不是以下行,

[self currentView] = [self nextView];

执行以下操作:

[self setCurrentView:[self nextView]];