0

iPadアプリを更新していて、分割ビューコントローラーのテーブルにオプションのリストがありますが、setDetalItemが起動していません。フォームファクター(画面が小さすぎる)のため、これはiPhoneに移植されません。

appDelegateクラスから:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
    UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
    splitViewController.delegate = (id)navigationController.topViewController;

    UINavigationController *masterNavigationController = splitViewController.viewControllers[0];
    JSLMasterViewController *controller = (JSLMasterViewController *)masterNavigationController.topViewController;
    controller.managedObjectContext = self.managedObjectContext;
    return YES;   
}

masterViewControllerから:

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    JSLDetailViewController *detailView = self.detailViewController;
    detailView.telegram = indexPath.row;

    NSLog(@"Did Fire 1");

}

そして私のdetailViewControllerから:

- (void)setDetailItem:(id)newDetailItem
{
    NSLog(@"Did Fire 2");

    if (_detailItem != newDetailItem) {
        _detailItem = newDetailItem;

    // Update the view.
        [self configureView];
    }

    if (self.masterPopoverController != nil) {
        [self.masterPopoverController dismissPopoverAnimated:YES];

    }

}

- (void)configureView
{
    // Update the user interface for the detail item.

    if (self.detailItem) {
        //self.detailDescriptionLabel.text = [[self.detailItem valueForKey:@"timeStamp"] description];

        NSArray *mainQuestion = [self mainQuestionArray];
        NSArray *subQuestion = [self subQuestionArray];
        questionTitle.text = mainQuestion[telegram];
        subQuestionOne.text = subQuestion[telegram][0];
        subQuestionTwo.text = subQuestion[telegram][1];
    }

}

appDelegateでdetailViewControllerのインスタンスを作成する必要があるかもしれないことは理解していますが、これを行う方法がわかりません。私が見つけたチュートリアルのほとんどは、分割ビューを最初から作成するか、古いバージョンのメカニズムを使用しているようです。あなたが私に与えることができるどんなヒントでも大いに感謝されるでしょう!

4

2 に答える 2

0

を起動するには、detailView.detailItem を設定する必要があります- (void)setDetailItem:(id)newDetailItem

MasterViewController.m では、通常、detailViewController は次のようになります。

self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];

そして、didSelectRowAtIndexPath で:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
        NSYourCoolObject *object = _YourObjectArray[indexPath.row];
        self.detailViewController.detailItem = object;
}
于 2013-03-19T16:32:10.353 に答える