多视图iPhone应用程序

时间:2011-10-09 21:20:59

标签: iphone uinavigationcontroller uitabbarcontroller multiview

我正在尝试构建一个应用程序,在打开时,您将看到一个包含多个元素的表视图。单击元素后,您将进入新视图,这是一个标签栏控制器。我已经创建了一个导航控制器作为我的根视图控制器,我想要弄清楚的是我是否需要将根视图控制器的功能从导航控制器元素传递到标签栏控制器?然后标签栏控制器完成工作?我一直在读

开始iPhone 4开发:探索IOS SDK [Book]作者:David Mark,Jack Nutting,Jeff LaMarche

第7章给出了如何使用标签栏控制器的一个很好的例子,但是如何将导航控制器的功能传递给我正在使用的标签栏控制器?

1 个答案:

答案 0 :(得分:1)

您可以在根目录和后面的标签栏控制器上使用导航控制器,如下所示: -

这个是你的应用程序委托的.h文件: -

@interface NavTabDemoAppDelegate : NSObject <UIApplicationDelegate>
{
   IBOutlet  UINavigationController *navController;
    IBOutlet UITabBarController *TabBar;
}

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

@property (nonatomic, retain) IBOutlet  UINavigationController *navController;
@property (nonatomic, retain) IBOutlet UITabBarController *TabBar;

这个是你的app delegate的.m文件

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [self.window addSubview:navController.view];
    [self.window makeKeyAndVisible];
    return YES;
}

将导航控制器和标签栏控制器从库拖放到主window.xib并将出口设置为应用程序代理

在tableview视图控制器的.h文件中,按如下所示创建yr委托的对象

NavTabDemoAppDelegate *appdelegate;

在viewdidload的yr tableview控制器的.m文件中

appdelegate = [[UIApplication sharedApplication] delegate];

只需在tableview视图控制器的DidSelectRowAtIndexPath

中写一下
[self.navigationController pushViewController:appdelegate.TabBar animated:YES];

完成!