0

私はこの問題を解決するために私の頭を裂いています。 IOS4を対象としたXcode 4.2のビルドで、.XIBファイルを扱っています。UITableView didSelectRowAtIndex TabBarとSubviewが動作していません

私はタブバー、1)私のアーティスト、2)すべてのアーティストを介して提供される2つのタブでiPhoneのアプリケーションを書いています。 各タブにはUITableビューがあります。 作品の詳細を表示する詳細ビューもあります。 (Matej BukovinskiのMBProgressHUDのコピーであるHUDディスプレイもあります)

私はdidSelectRowAtIndexPathを呼び出すと私の人生を保存することができません。 (それは正しく火を行い

私は基本的な何かが欠けていることを持って知っているが...私はちょうどそれが私の命を救うために見つけることができません事前に

おかげ

。。。 - ロブ

AppDelegate.h

#import <UIKit/UIKit.h> 

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate> { 
    UINavigationController *navigationController; 

} 
@property (strong, nonatomic) UINavigationController *navigationController; 
@property (strong, nonatomic) UIWindow *window; 
@property (strong, nonatomic) UITabBarController *tabBarController; 
@end 

AppDelegate.m

#import "AppDelegate.h" 
#import "MyArtistsViewController.h" 
#import "SecondViewController.h" 
#import "TicketDetailView.h" 
#import "viewTest.h" 

@implementation AppDelegate 

@synthesize window = _window; 
@synthesize tabBarController = _tabBarController; 
@synthesize navigationController =_navigationController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    //Test on navigationController 
    //navigationController = [[UINavigationController alloc] initWithRootViewController:MyArtistsViewController]; 
    // Override point for customization after application launch. 
    UIViewController *viewController1 = [[MyArtistsViewController alloc] initWithNibName:@"MyArtistsViewController" bundle:nil]; 
    //UINavigationController *viewController1 = [[MyArtistsViewController alloc] initWithNibName:@"MyArtistsViewController" bundle:nil]; 

    //UIViewController *tvc = [[TicketViewController alloc] initWithNibName:@"TicketViewController" bundle:nil]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:_tabBarController]; 


    UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 


    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

MyArtistsViewController.h

#include "MBProgressHUD.h" 
#import "TicketViewController.h" 
@interface MyArtistsViewController : UIViewController 
<MPMediaPickerControllerDelegate, UITableViewDelegate,CLLocationManagerDelegate, 
UITableViewDataSource, MBProgressHUDDelegate> 
{ 
    IBOutlet UITableView *tblEvents; 
    MBProgressHUD *HUD; 

} 
@property (nonatomic, retain) TicketViewController *detailViewController; 
@property (nonatomic, retain) IBOutlet UITableView *tblEvents; 
@property (nonatomic, retain) IBOutlet CLLocationManager *locationManager; 
@property (nonatomic, retain) NSString *eventID, *artistName; 
@end 

MyArtistsViewController.m

AppDelegate.mで
#import "MyArtistsViewController.h" 
@synthesize ticketViewController; 
@synthesize detailViewController; 
@synthesize tblEvents; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     self.title = NSLocalizedString(@"Master", @"Master"); 
    } 
    return self; 
} 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (!self.detailViewController) { 
     self.detailViewController = [[TicketViewController alloc] initWithNibName:@"TicketViewController" bundle:nil]; 
    } 
    [self.navigationController pushViewController:self.detailViewController animated:YES]; 
} 
- (void)viewDidLoad 
//Create the Spinner or (HUD, Heads Up Display) to let the User know whats going on. 
    HUD = [[MBProgressHUD alloc] initWithView:self.view]; [self.view addSubview:HUD]; 
    [self.navigationController.view addSubview:HUD]; 

    HUD.delegate = self; 
    HUD.labelText = @"Loading"; 
    HUD.detailsLabelText = @"Wow you read this far!"; 
    HUD.square = YES; 
    [HUD show:YES]; 

    // Does a bunch of stuff 

    [HUD show:NO]; 

答えて

1

、あなたの代わりに、通常のビューコントローラのタブバービューのcontrolerにUINavigationControllerを追加する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    //Test on navigationController 
    //navigationController = [[UINavigationController alloc] initWithRootViewController:MyArtistsViewController]; 
    // Override point for customization after application launch. 
    UIViewController *artistsVC = [[[MyArtistsViewController alloc] initWithNibName:@"MyArtistsViewController" bundle:nil] autorelease]; //remove autorelease if ARC support 
    UINavigationController *viewController1 = [[[UINavigationController alloc] initWithRootViewController:artistsVC] autorelease]; 

    //UIViewController *tvc = [[TicketViewController alloc] initWithNibName:@"TicketViewController" bundle:nil]; 
    //self.navigationController = [[UINavigationController alloc] initWithRootViewController:_tabBarController]; 


    UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 


    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
関連する問題