我想在我的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];
唯一的问题是,当我点击回原始视图时,它的导航栏会保留照片查看器的样式(透明并显示其下的视图)。 如何取回原来的导航栏?
答案 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:]
方法中。