将Three20 PhotoViewer添加到我的UINavigationViewController时出现问题

时间:2010-12-30 01:28:43

标签: iphone three20

我想在我的iphone应用中使用照片查看器,我喜欢Three20 photo viewer。我发现它有点难以集成到我自己的应用程序中,我有我的典型UINavigationViewController。到目前为止,我成功地做了以下事情:

TTURLMap *map = [[[TTURLMap alloc] init] autorelease];
[map from:@"tt://appPhotos" toSharedViewController:[PhotoViewController class]];  
[self.navigationController pushViewController:[map objectForURL:@"tt://appPhotos"] animated:YES];

唯一的问题是,当我点击回原始视图时,它的导航栏会保留照片查看器的样式(透明并显示其下的视图)。 如何取回原来的导航栏?

2 个答案:

答案 0 :(得分:2)

我的经验:我曾经使用过Three20的PhotoViewer,每次我从PhotoViewer回到我的另一个视图。系统状态栏保持黑色和透明(虽然它应该是默认样式)。每次触发后退操作时,我都会通过手动和编程方式更改状态栏样式来解决它。

答案 1 :(得分:1)

是的,这肯定是一个问题。正如@diwup所说,一个好的解决方案是实现手动修复。我倾向于在需要时继承TTPhotoViewer。它不仅有助于解决这个问题,而且还使我更容易使用。

如果您决定继承,那么您应该使用以下所需的任何变体:

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.tintColor = myTintColor;
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}

但是,如果您不想进行子类化,则始终可以将代码放入照片查看器之后的任何类的 - [viewWillAppear:]方法中。