2013-02-16 31 views
0

我有一个问题。在我的应用程序中(它是选项卡样式),我有一个viewcontroller与一些文本和第二个与表视图(RSS阅读器)。当我只有RSS和它被设置为单视图应用程序,子视图形式rss的作品,但是当我设置选项卡式的应用程序,并在表视图中点击一些职位,子视图没有显示...任何人都可以帮助我吗?iOS - 带表格视图和子视图的选项卡式应用程序

这里是我的代码:

AppDelegate.h

  #import <UIKit/UIKit.h> 

@interface MWFeedParserAppDelegate : NSObject <UIApplicationDelegate> { 

    UIWindow *window; 
    UINavigationController *navigationController; 
} 

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

@end 

AppDelegate.m

#import "MWFeedParserAppDelegate.h" 
#import "ViewController1.h" 
#import "RootViewController.h" 

@implementation MWFeedParserAppDelegate 

@synthesize window; 
@synthesize navigationController; 

#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after app launch 
    UITabBarController *tbc = [[UITabBarController alloc]init]; 

    ViewController1 *vc1 = [[ViewController1 alloc]init]; 
    RootViewController *vc2 = [[RootViewController alloc]init]; 

    [vc1.tabBarItem setTitle:@"Tab1"]; 
    [vc2.tabBarItem setTitle:@"Tab2"]; 

    [tbc setViewControllers:[NSArray arrayWithObjects:vc1, vc2, nil]]; 
    [window addSubview:[navigationController view]]; 
    [window makeKeyAndVisible]; 
    [window setRootViewController:tbc]; 
    return YES; 
} 

- (void)applicationWillTerminate:(UIApplication *)application { 
    // Save data if appropriate 
} 

#pragma mark - 
#pragma mark Memory management 

- (void)dealloc { 
    [navigationController release]; 
    [window release]; 
    [super dealloc]; 
} 


@end 

回答

1

从dealloc的,我看你是不是使用弧。 你有一些内存泄漏;一定要在您的didFinishLaunchingWithOptions中发布vc1vc2,标签栏控制器将保留它们。

你可能不需要navigationController属性,建议你删除它,直到你知道你需要它。

我想你会想添加到标签栏控制器这样之前,你的RSS视图(VC2?)添加到导航控制器:

[tbc setViewControllers:[NSArray arrayWithObjects:vc1, [[[UINavigationController alloc] initWithRootViewController:vc2] autorelease], nil]]; 

,并删除这一行:

[window addSubview:[navigationController view]]; 

祝你好运!

编辑阐述了一点点更多:

ViewController1 *vc1 = [[[ViewController1 alloc] init] autorelease]; 
RootViewController *vc2 = [[[RootViewController alloc] init] autorelease]; 
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:vc2] autorelease]; 
UITabBarController *tbc = [[[UITabBarController alloc] init] autorelease]; 
[tbc setViewControllers:@[vc1, navController]]; 
[window makeKeyAndVisible]; 
[window setRootViewController:tbc]; 
+0

哦男人太感谢你了! :-) – stepik21 2013-02-16 18:55:47

相关问题