How do I reference the detailViewController on an iPad that is using a splitViewController

前端 未结 3 462
不思量自难忘°
不思量自难忘° 2021-01-24 20:07

I setup a project on XCode 4.3 and IOS 5 without using storyboards for both iPhone and iPad using the default Master/Detail setup from the create new project dialog.

The

相关标签:
3条回答
  • 2021-01-24 20:43

    I was puzzled by the templates implementation of the Master/Detail view. I asked a similar question:

    How to update DetailView using MasterDetail Application Template

    You can use the detailItem (id - so you can pass in a reference) property that is set up by default for the DetailViewController class.

    0 讨论(0)
  • 2021-01-24 20:46

    In the master/detail template, Apple uses the following code in the MasterViewController (i.e. the one on the left):

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.detailViewController = (MYDetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
    }
    

    With the property on MasterViewController defined as:

    @property (strong, nonatomic) MYDetailViewController *detailViewController;
    
    0 讨论(0)
  • 2021-01-24 20:55

    If you have a pointer to the split view controller itself, you can do:

    [(GeoDetailViewController *)[[(UINavigationController *)[[splitViewController viewControllers] objectAtIndex:1] viewControllers] objectAtIndex:0] populateDisplay:currentShape];
    

    To get the pointer to your split view, you will probably have to go via your app delegate:

    UISplitViewController *splitViewController = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] splitViewController];
    

    (assuming that you are using the default split view controller template - YMMV depending on how you have implemented it)

    Note that when you create your split view, you must set the detail view controller to be a GeoDetailViewController - if you are not and you cannot for app design reasons, I can edit my answer to work around that.

    0 讨论(0)
提交回复
热议问题