0

タブベースのアプリケーションがあります。最初のタブにはいくつかのビューがあり、そのうちの 1 つはナビゲーション コントローラーです。私の目標は、このリストビューをロードして(動作中)、セルクリックで詳細ビューに移動することです(動作していません)。

セルをクリックすると、ログに記録しています

NSLog(@"%@",self.navigationController);

これはnullを返しています。ナビゲーションコントローラーの設定で何か正しいことをしていないとしか思えませんが、何がわかりません。

ボタンをクリックすると、テーブル ビューが呼び出されます。

#import "Reviews.h"
#import "XMLParser.h"
#import "Detailed_Review.h"

@implementation Reviews

@synthesize reviewsTableView;

XMLParser *xmlParser;
CGRect dateFrame;
UILabel *dateLabel;
CGRect contentFrame;
UILabel *contentLabel;

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{
    return 1;
}

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";
Review_Object *currentReview = [[xmlParser reviews] objectAtIndex:indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

        CGRect contentFrame = CGRectMake(10, 2, 265, 30);
        UILabel *contentLabel = [[UILabel alloc] initWithFrame:contentFrame];
        contentLabel.tag = 0011;
        contentLabel.numberOfLines = 2;
        contentLabel.font = [UIFont boldSystemFontOfSize:12];
        [cell.contentView addSubview:contentLabel];

        CGRect reviewFrame = CGRectMake(10, 40, 265, 10);
        UILabel *reviewLabel = [[UILabel alloc] initWithFrame:reviewFrame];
        reviewLabel.tag = 0012;
        reviewLabel.font = [UIFont systemFontOfSize:10];
        [cell.contentView addSubview:reviewLabel];
    }

UILabel *contentLabel = (UILabel *)[cell.contentView viewWithTag:0011];
    contentLabel.text = [currentReview rating];

UILabel *dateLabel = (UILabel *)[cell.contentView viewWithTag:0012];
    dateLabel.text = [currentReview review];

    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 55;
}

#pragma mark -
#pragma mark Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
     Detailed_Review *dvController = [[Detailed_Review alloc] initWithNibName:@"Detailed_Review" bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:dvController animated:YES];
    NSLog(@"%@",self.navigationController);
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];

    xmlParser = [[XMLParser alloc] loadXMLByURL:@"http://www.mywebsite.com/api/reviews/xml.php?page=1"];

    self.title = @"Reviews";
}

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

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end

xib 写真:

最初のタブ.xim

devtailview.xib

.h ファイル:

#import <UIKit/UIKit.h>
#import "XMLParser.h"
#import "Review_Object.h"

@interface Reviews : UIViewController

@property (retain, nonatomic) IBOutlet UITableView *reviewsTableView;

@end
4

1 に答える 1

0

navigationController が割り当てられて初期化される部分を省略しました。.h ファイルの関連部分も含めて追加できますか?

IB またはプログラムで作成するには、 https: //developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerPGforiOSLegacy/NavigationControllers/NavigationControllers.html#//apple_ref/doc/uid/TP40011381-CH103- を参照してください。 SW27

于 2012-06-28T08:43:19.020 に答える