xil*_*il3 13 iphone uitabbarcontroller uinavigationcontroller
我尝试了以下代码,试图让自定义视图显示在标签栏控制器上方(恰好在其所有选项卡中都有一个导航控制器).
问题是它覆盖在导航栏的顶部,我希望导航栏向下移动.
我尝试设置标签栏控制器的框架,但根本没有移动它.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the tab bar controller's current view as a subview of the window
//self.tabBarController.view.frame = CGRectMake(0, 62, 320, 320);
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
// setting up the header view
self.headerView = [[HeaderView alloc] initWithFrame:CGRectMake(0, 20, 320, 42)];
[self.window addSubview:self.headerView];
// setting up facebook stuff
AgentSingleton *agentSingleton = [AgentSingleton sharedSingleton];
agentSingleton.facebook = [[Facebook alloc] initWithAppId:APP_ID];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Seb*_*ddd 30
将视图添加到tabBarController视图本身:
[self.tabBarController.view addSubview:yourView];
Run Code Online (Sandbox Code Playgroud)
您可以简单地将addSubview添加到窗口:
[self.view.window addSubview:myView];
Run Code Online (Sandbox Code Playgroud)
没有任何好方法可以做到这一点.UINavigationController和UITabBarController的各个子视图都是私有的,并且试图弄乱它们可能无法正常工作.Apple并没有为我们提供创建"容器"视图控制器的工具,因此您无法轻松地将UINavigationController/UITabBarController嵌入到另一个视图控制器中,或者自己重新创建UINavigationController/UITabBarController.
你最好的选择可能是继续尝试创建自己的"容器"视图控制器,并处理一些不正常的事情.特别是,包含的视图控制器parentViewController
将返回nil,因此包含的视图控制器或其子控制器上的各种其他内容将被破坏(例如,interfaceOrientation
属性将是错误的,presentModalViewController:animated:
可能无法正常工作).其他事情也可能被打破.
或者你可以等到iOS的某个未来版本实际上支持我们创建容器视图控制器(如果有的话),然后只支持该版本.
我遇到了同样的问题,最终做了这样的事情:
newView.frame = tabBarController.tabBar.frame
tabBarController.view.addSubview(newView)
Run Code Online (Sandbox Code Playgroud)
将视图添加到 tabBarController 并使用当前选项卡栏的框架作为新视图的位置就可以了。
归档时间: |
|
查看次数: |
19462 次 |
最近记录: |