Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
955 views
in Technique[技术] by (71.8m points)

iphone - '-[UITableViewController loadView] loaded the "MySubscriptionsViewController" nib but didn't get a UITableView.'

I updated my xcode using 6.1 simulator, my app was working fine for 5.1 simulator,

now i am getting the following error :

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "MySubscriptionsViewController" nib but didn't get a UITableView.' 

my header file:

#import <UIKit/UIKit.h>

@interface MySubscriptionsViewController : UITableViewController{

}

@property (nonatomic,retain) NSString *serverAddress;
@property (nonatomic, retain) UITextField *airportField;
@property (nonatomic, retain) NSMutableArray *airportList;

@property (nonatomic, retain) NSMutableArray *colCode;
@property (nonatomic, retain) NSMutableArray *colAirport;
@property (nonatomic, retain) NSMutableArray *colStartDate;
@property (nonatomic, retain) NSMutableArray *colStartTime;
@property (nonatomic, retain) NSMutableArray *colEndTime;
@property (nonatomic, retain) NSMutableDictionary *tempAirport;


@property (nonatomic,strong) NSDictionary *countryList;
@property (nonatomic,strong) NSArray *countryKeys;

- (IBAction)Meetup:(id)sender;
- (IBAction)ViewBeacon:(id)sender;
-(IBAction)gotoHome:(id)sender;

-( void)beacon:(NSString *)theStr;

@end

my m file:

#import "MySubscriptionsViewController.h"
#import "MybeaconsViewController.h"
#import "SBJsonParser.h"
#import "GridTableViewCell.h"
#import "MeetupViewController.h"
#import "ViewBeaconViewController.h"
#import "DataClass.h"
#import "MemberPanelViewController.h"


@interface MySubscriptionsViewController ()

@end

@implementation MySubscriptionsViewController
@synthesize countryList,countryKeys,serverAddress,airportField,airportList,tempAirport,colStartTime,colEndTime,colStartDate,colAirport,colCode;


- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}




- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0,0);
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    DataClass *obj=[DataClass getInstance];  



    // serverAddress = @"http://www.cloudnetpk.com/transbeacon_design/services";
    NSString *strURL = [NSString stringWithFormat:@"http://www.cloudnetpk.com/transbeacon_design/services/get_my_beacon_subscriptions.php?code=%@",obj.str];
    NSLog(@" url => %@",strURL);
    NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
    NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];

    SBJsonParser *parser = [[SBJsonParser alloc] init];
    NSArray *datos = [parser objectWithString:strResult error:nil];

    tempAirport = [[NSMutableDictionary alloc] init];
    airportList = [[NSMutableArray alloc] init];
    colStartTime = [[NSMutableArray alloc] init];
    colEndTime = [[NSMutableArray alloc] init];
    colStartDate= [[NSMutableArray alloc] init];
    colAirport= [[NSMutableArray alloc] init];
    colCode= [[NSMutableArray alloc] init];
    countryList = datos;

    NSLog(@"beacons count %d",datos.count);
    for (int i=0; i<datos.count; i++){
        int a=0;

        NSString *startDate = [[[datos objectAtIndex:i] objectForKey:@"start_date" ] lowercaseString];
        NSString *airPort= [[[datos objectAtIndex:i] objectForKey:@"airport" ] lowercaseString];
        NSString *startTime = [[[datos objectAtIndex:i] objectForKey:@"start_time" ] lowercaseString];
        NSString *endTime = [[[datos objectAtIndex:i] objectForKey:@"end_time" ] lowercaseString];
        NSString *code = [[[datos objectAtIndex:i] objectForKey:@"code" ] lowercaseString];

        //NSLog(@" here =>%@",code);
        [colStartDate insertObject:startDate atIndex:i ];
        [colAirport insertObject:airPort atIndex:i ];
        [colStartTime insertObject:startTime atIndex:i ];
        [colEndTime insertObject:endTime atIndex:i ];
        [colCode insertObject:code atIndex:i];


        //[ tempAirport setObject:lcString  forKey:lcStringValue];
    }



    [super viewDidLoad];





}





- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [countryList count];
}

/*
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    
 UITableViewCell *cell =[[UITableViewCell alloc]
 initWithStyle:UITableViewCellStyleDefault
 reuseIdentifier:@"cell"];
 NSString *currentCountryName=[countryKeys objectAtIndex:[indexPath row]];
 [[cell textLabel] setText:currentCountryName];
 //cell.detailTextLabel.text=@"testing here ";
 return cell;
 }
 */
-(UITableViewCell *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    static NSString *CellIdentifier = @"SectionHeader"; 
    //UITableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(10,0,300,60)] ;

    UIImage *myImage=[UIImage imageNamed:@"top_bar.png"];
    UIImageView *imageView =[[UIImageView alloc] initWithImage:myImage];
    imageView.frame= CGRectMake(0, 0, 400, 50);
    [headerView addSubview:imageView];   



    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(110,3, tableView.bounds.size.width - 170,40)];  
    label.text = @"Subscriber List";
    label.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; 
    label.font = [UIFont fontWithName:@"Arial-BoldMT" size:16]; 
    label.backgroundColor = [UIColor clearColor];
    [headerView addSubview:label];



    UIButton *circularButton = [UIButton buttonWithType:UIButtonTypeCustom];    
    CGRect circularRect = CGRectMake(5.0, 5, 58.0, 32.0);
    [circularButton setFrame:circularRect];
    [circularButton addTarget:self action:@selector(Meetup:) forControlEvents:UIControlEventTouchUpInside]; 
    UIImage *buttonImage = [UIImage imageNamed:@"back_btn.png"];
    [circularButton setImage:buttonImage forState:UIControlStateNormal];
    [headerView addSubview:circularButton];    


    UIButton *homeButton = [UIButton buttonWithType:UIButtonTypeCustom];    
    CGRect circularRectHome = CGRectMake(250.0, 5, 58.0, 32.0);
    [homeButton setFrame:circularRectHome];
    [homeButton addTarget:self action:@selector(gotoHome:) forControlEvents:UIControlEventTouchUpInside]; 
    UIImage *buttonImageHome = [UIImage imageNamed:@"home_btn.png"];
    [homeButton setImage:buttonImageHome forState:UIControlStateNormal];
    [headerView addSubview:homeButton];   

    return headerView;
}  


-(IBAction)gotoHome:(id)sender{
    // redirect
    MemberPanelViewController *window =[[MemberPanelViewController alloc]init];
    [self presentModalViewController:window animated:YES];

}


- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

    return 50;
}


- (IBAction)Meetup:(id)sender{
    NSLog(@" button clicked here");
    MeetupViewController *window =[[MeetupViewController alloc]init];
    [self presentModalViewController:window animated:YES];



}

- (IBAction)ViewBeacon:(id)sender{
    ViewBeaconViewController *window=[[ViewBeaconViewController alloc]init];
    [self presentModalViewController:window animated:YES];
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{


    static NSString *CellIdentifier = @"Cell";

    GridTableViewCell *cell = (GridTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[GridTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.lineColor = [UIColor blackColor];
    }

    // Since we are drawing the lines ourself, we need to know which cell is the top cell in the table so that
    // we can draw the line on the top
    if (indexPath.row == 0)
        cell.topCell = YES;
    else
        cell.topCell = NO;

    // Configure the cell.
    //cell.cell1.text = [NSString stringWithFormat:@"%i",indexPath.row];
    //cell.cell2.text = [NSString stringWithFormat:@"%i", indexPath.row];
    //cell.cell3.text = @"test here text";



    cell.cell1.text =[colStartDate objectAtIndex:indexPath.row];
    cell.cell2.text =[colAirport objectAtIndex:indexPath.row];
    cell.cell3.text =[colStartTime objectAtIndex:indexPath.row];
    cell.cell4.text = [colEndTime objectAtIndex:indexPath.row];

    NSString *value = [colCode objectAtIndex:indexPath.row];
    NSLog(@" value => %@",value);

    UIButton *circularButton = [UIButton buttonWithType:UIButtonTypeCustom];    
    CGRect circularRect = CGRectMake(260.0, 2, 60.0, 40.0);
    [circularButton setFrame:circularRect];
    [circularButton addTarget:self action:@selector(beacon:) forControlEvents:UIControlEventTouchUpInside];

    circularButton.tag=value;
    UIImage *buttonImage = [UIImage imageNamed:@"view.png"];
    [circularButton setImage:buttonImage forState:UIControlStateNormal];
    [cell.contentView addSubview:circularButton];    

    return cell;
}

-( void)beacon:(NSString *)theStr{
    NSInteger *tid = ((UIControl*)theStr).tag;
    NSLog(@" here is parameter %@",tid);


    ViewBeaconViewController *window=[[ViewBeaconViewController alloc]init];
    //   window.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    window.theDataYouWantToPass =tid; 
    window.lastscreen =@"subscription"; 
    [self presentModalViewController:window animated:YES];

}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    /*
     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:detailViewController animated:YES];
     [detailViewController release];
     */
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}



- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "MySubscriptionsViewController" nib but didn't get a UITableView.' This error Ocurce becouse some bellow issue.

I think the problem is because you are subclassing UITableViewController instead of UIViewController. you need to put UIViewController as a subclass and connect IBoutlet of UITableview in XIB with its delegare. your TableVIew in UIView of XIB so you just connect fileOWner to UIView as a View and UITableview with your TableView Outlate.

@interface MySubscriptionsViewController : UIViewController<UITableViewDelegate, UITableViewDataSource>

OR

else there you remaining some referance of old copy you trying with restart xcode and remove catch or clean derive data


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...