Jak*_*san 6 objective-c app-store ios ios7
在iOS 6中,引入了SKStoreProductViewController以在应用程序中显示iTunes Store项目,因此用户无需离开应用程序即可查看它们.
到目前为止,我还没有找到一种方法来自定义此视图控制器的导航栏.在iOS 6中,它是带有灰色书写的黑色,而在iOS 7中,它是带有黑色书写的白色.
有没有办法改变导航栏的色调?(在iOS 6和iOS 7中)
谢谢.
不是最好的解决方案,但您可以使用UINavigationBar的UIAppearance方法在显示之前设置颜色:
[[UINavigationBar appearance] setTintColor:[UIColor darkGrayColor]];
SKStoreProductViewController *storeProductViewController = [[SKStoreProductViewController alloc] init];
[storeProductViewController setDelegate:self];
[self presentViewController:storeProductViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
然后在SKStoreProductViewControllerDelegate方法中,将其更改回以前的任何内容...
-(void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[viewController dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
适合我.
很不幸的是,不行. SKStoreProductViewController是一个远程视图控制器,意味着它的视图完全由另一个进程拥有,并且以编程方式无法访问.
这可以通过查看控制器视图的递归描述来确认:
<UIView: 0x8d48da0; frame = (0 0; 320 480); layer = <CALayer: 0x8d48d70>>
| <_UISizeTrackingView: 0x9b53700; frame = (0 0; 320 480); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x9b53770>>
| | <_UIRemoteView: 0x9b51d70; frame = (0 0; 320 480); transform = [0.5, -0, 0, 0.5, -0, 0]; userInteractionEnabled = NO; layer = <CALayerHost: 0x9b55ae0>>
Run Code Online (Sandbox Code Playgroud)
的_UIRemoteView指示视图的内容在另一个进程托管.
| 归档时间: |
|
| 查看次数: |
2460 次 |
| 最近记录: |