【问题标题】:iOS - Tabbed aplication with table view and subviewiOS - 带有表格视图和子视图的选项卡式应用程序
【发布时间】:2013-02-16 18:38:20
【问题描述】:

我有一个问题。在我的应用程序(它是选项卡式)中,我有一个带有一些文本的视图控制器和第二个带有表格视图(RSS 阅读器)的视图控制器。当我只有 RSS 并将其设置为单视图应用程序时,子视图表单 rss 可以工作,但是当我设置选项卡式应用程序并单击表格视图中的某些帖子时,子视图没有显示...有人可以帮帮我吗?

这是我的代码:

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

【问题讨论】:

    标签: uitableview subview tabbed-view


    【解决方案1】:

    从 dealloc 中,我看到你没有使用 arc。 你有一些内存泄漏;请务必在您的didFinishLaunchingWithOptions 中释放vc1vc2,标签栏控制器将保留它们。

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

    我认为您需要先将 RSS 视图 (vc2?) 添加到导航控制器,然后再添加到标签栏控制器,如下所示:

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

    并删除这一行:

    [window addSubview:[navigationController view]];
    

    祝你好运!!

    edit再拼写一点:

    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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多