-1

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

@property (weak, nonatomic) UIView *currentView;

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

...
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 在这里不可分配。是否有另一种希望更好的方式来记住当前观点以达到我的目的,或者我应该使用完全不同的方式?

4

3 回答 3

0

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

self.currentView = [self nextView];

或显式调用设置器:

[self setCurrentView:[self nextView]];
于 2013-01-02T12:34:01.773 回答
0

试试这个

代替

[self currentView] = [self nextView];

self.currentView = [self nextView];
于 2013-01-02T12:34:20.123 回答
0

而不是以下行,

[self currentView] = [self nextView];

执行以下操作:

[self setCurrentView:[self nextView]];
于 2013-01-02T12:35:04.077 回答