iPhone将一个UITabBar添加到TableView / NavigationController

时间:2010-01-04 23:54:40

标签: iphone uinavigationcontroller uitabbarcontroller

我已经找到了很多关于这个主题的信息,但还没有解决它是如何实际完成的。

我想将iPhone应用程序中的UITabBar添加到已经将UIWindow / UINavigation Controller作为默认窗口的应用程序中。

即。使用RootViewController.xib,MainWindow.xib,AddView.xib,DetailView.xib,EditView.xib等为典型的NavControl应用添加标签栏... 我编辑哪一个?

如果有人能指出我的视觉示例,我们将不胜感激。截屏肯定会得到奖励积分,这个问题在网上被问到这么多,我找不到一个简单的答案。 看到: How to add a TabBar to NavigationController based iPhone app

样品

例如。 appdelegate是这样的:

@interface SQLAppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    UINavigationController *navigationController;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

2 个答案:

答案 0 :(得分:3)

我不清楚是否要在其中一个导航控制器视图中添加标签栏,或者是否要获取导航控制器视图并使其成为标签栏控制器中的一个选项卡多个标签。

我认为人们会在导航控制器子视图中找到一个标签栏有点奇怪所以我猜你的意思是你想把导航控制器放在标签栏控制器的子视图中,就像我有如下图所示:

alt text http://img138.imageshack.us/img138/7671/screenshotve.png

“日志视图控制器”从NIB文件加载,该文件包含视图和其他一些内容。

如果您想在导航控制器的某个子视图中找到类似标签视图的内容,我会使用分段控件在该特定子视图内部切换视图。

如果您正尝试在上面的窗口中执行操作,只需将新的标签栏控制器拖到主nib文件中,然后将现有的导航控制器拖到标签栏控制器图标上。这将使导航控制器成为标签控制器内的一个标签。

答案 1 :(得分:2)

好的,我大部分时间都熬夜并且把它解决了。我基于上面的灵感和Apple Recipes Sample SDK Code。

您发布的屏幕截图是关键。一般来说我做了什么:

*开始我的项目,让它按照我想要的UITableViews工作 *在IB中创建TabBar *为Interface Builder,Connections等中的应用程序复制完全相同的布局。 *与显示相关的复制代码

(连接屏幕截图)http://img511.imageshack.us/img511/6267/screenshot20100105at121.png

密码:

AppDelegate.h:

@interface AppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    UINavigationController *navigationController;

    UITabBarController *tabBarController;
    RootViewController *rootController;
}

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) IBOutlet RootViewController *rootController;

AppDelegate.m:

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    [window addSubview:tabBarController.view];
    [window makeKeyAndVisible];
}

这只是我改变的关键内容的样本。除了界面构建器之外,没有触及AppDelegate之外的任何内容。 每次我都会加载一个白色的空窗口,直到我改变了

[window addSubview:[navigationController view]];

[window addSubview:tabBarController.view];

这是关键。

希望这也有助于其他人,我很乐意将其解决

问候,@ norskben