2

我可以轻松地在我的应用程序中启用和禁用TabBarItems没有值或内容的应用程序。奇迹般有效。我确实想保留所有选项卡,以表明此功能或内容将在整个应用程序的其他视图上可用,因为此特殊视图会动态填充超过 30 次的内容。

TabBarController是我的“ ”中的子类DetailViewController。在这个类中,我确实检查是否存在任何内容,并通过传递viewWillAppear事件来延迟加载内容(防止加载不存在的选项卡内容并检查互联网连接等)。工作又快又好。

问题更多的是设计光学问题。第一次加载视图启用和禁用工作,但图片没有“变暗”。加载第二个视图并执行相同的过程会使禁用的选项卡“变暗”......我错过了什么?

4

1 回答 1

0

在调用 viewWillAppear 之前,我会三思而后行,self因为结果可能无法预测。

// BAD IDEA
- (void)viewDidLoad {
    ...
    [self viewWillAppear];
    ...
}

// OK
- (void)viewWillAppear {
    ...
    [super viewWillAppear];
    ...
}

...例外是您从同名方法中调用 [super viewWillAppear]。

一般来说,最好将 Apple 的回调的触发留给 Apple。尝试重构您在 viewWillAppear 中拥有的功能,然后在 viewDidLoad、viewWillAppear 和 viewDidAppear 中调用您需要的功能。当您分解每个功能时,问题可能会出现。

于 2010-08-30T09:48:04.753 回答