0

UISplitViewControllersに苦労して数日経ちましたが、ここに私の問題があります:次のように宣言されたマスタービューがあります

#import <UIKit/UIKit.h>
#import "DetailViewController.h"

@class DetailViewController;
@interface MasterViewController : UITableViewController {
    NSMutableArray *title, *subTitle;
    unsigned int quantity;
}

@property (strong, nonatomic) DetailViewController *detailViewController;
@end

マスターの .m ファイルでは、すべてが正しく機能します (sqlite db からテーブルにデータを入力し、内容を行に表示することができます)。1 つの行を選択して、右側の詳細ビューに入力すると、何も起こりません。行の選択は次のとおりです。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyObject itemFromDB;
    /* 

    ... DB stuff here ...

    */

    self.detailViewController.detailItem = itemFromDB;  
}

DetailViewController の実装は次のとおりです。

@interface DetailViewController : UIViewController <UISplitViewControllerDelegate>
@property (strong, nonatomic) MyObject *detailItem;
@property (weak, nonatomic) IBOutlet UILabel *name, *phone;
@end

そして詳細の .m:

#import "DetailViewController.h"
@interface DetailViewController ()
- (void)configureView;
@end

@implementation DetailViewController

- (void)setDetailItem:(MyObject *)newItem
{
    if (_detailItem != newItem) {
        _detailItem = newItem;
        [self configureView];
    }
}

- (void)configureView
{
    if (self.detailItem) {
        self.name.text = [self.detailItem name];
        self.phone.text = [self.detailItem phone];
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self configureView];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
} 

簡単に言えば、詳細は、行の選択後に変更を認識していません。何か助けはありますか?

4

1 に答える 1

3

self.detailViewController を定義したことがありません。これを行う必要があります:

self.detailViewController = self.splitViewController.viewControllers[1];

于 2013-05-09T17:21:00.020 に答える