使用 xcode 4 在 ios 5 中创建选项卡式导航应用程序的问题
Posted
技术标签:
【中文标题】使用 xcode 4 在 ios 5 中创建选项卡式导航应用程序的问题【英文标题】:Issue in creating a tabbed navigation app in ios 5 with xcode 4 【发布时间】:2012-04-21 12:02:34 【问题描述】:我正在尝试更改 xcode 4 上的选项卡式应用程序以合并没有情节提要的导航控制器。 第一个选项卡包含一个表格。这是需要导航的。
这里是 FirstViewController.h
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
IBOutlet UITableView *storeDetailsTable;
@property (nonatomic, retain) UITableView *storeDetailsTable;
@property (nonatomic, strong) NSDictionary *resultData;
@property (nonatomic, strong) NSMutableArray *populatedStoreArray;
@property (nonatomic, strong) NSMutableArray *images;
@end
这是 NavController.h:
#import <UIKit/UIKit.h>
@interface NavController : UINavigationController
@property (nonatomic,retain) IBOutlet UINavigationController * navController;
@end
所以,我将 NavController 用作 UIViewControllerSubclass,然后将其更改为上述内容。
AppDelegate.h:
#import <UIKit/UIKit.h>
@class NavController;
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
IBOutlet NavController *navController;
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tabBarController;
@property (strong, nonatomic) IBOutlet NavController *navController;
@end
和 AppDelegate.m:
#import "AppDelegate.h"
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "NavController.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize tabBarController = _tabBarController;
@synthesize navController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
navController = [[NavController alloc] initWithNibName:@"NavController" bundle:nil];
// UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navController, viewController2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
现在,当我构建并运行它时,我看到了 2 个选项卡。但是第一个选项卡只是一个描绘导航控制器的空白黑屏,但没有应有的 tableview。
我错过了什么吗?
谢谢..
【问题讨论】:
【参考方案1】:在您的代码中,我看不到您正在初始化 FirstViewController 类并让 NavController 知道它。 NavController 需要使用 RootViewController 进行初始化,例如:
NavController *myNavController = [[NavController alloc] initWithRootViewController:yourFirstViewController];
查找更多信息的好地方是: http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html
【讨论】:
以上是关于使用 xcode 4 在 ios 5 中创建选项卡式导航应用程序的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Xcode 4.5 中创建 IOS 5.1 应用程序
如何在 html 中创建带有 4 个选项卡的菜单,该菜单将在一页上显示内容?
尺寸检查器中没有自动调整窗口大小的选项(XCode 4.5.2)
Xcode 5 - iOS - 如何在没有 Storyboard 或 XIB 的情况下在 Xcode 中创建视图控制器以及如何将其配置为 AppDelegate 作为根视图