lug*_*nja 5 objective-c storyboard master-detail ipad ios
我做了不同的masterdetailview viewcontrollers我storyboard和链接的每个人都与推进segue.现在当我点击列表项新DetailViewController打开时,但每一个都没有navigationbar.我添加navigation item了每个View的顶部,为每一个添加了标题,但毕竟navigation bar没有显示.我正在研究iPad应用程序,并且在两个方向上都缺少导航栏.
编辑:
创建Master-Detail项目时,我的appDelegate与模板相同:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我的一个DetailViewControllers:
#import "MediaExpDetailViewController.h"
@interface MediaExpDetailViewController ()
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
@end
@implementation MediaExpDetailViewController
#pragma mark - Managing the detail item
- (void)setDetailItem:(id)newDetailItem
{
if (_detailItem != newDetailItem) {
_detailItem = newDetailItem;
}
if (self.masterPopoverController != nil) {
[self.masterPopoverController dismissPopoverAnimated:YES];
}
}
- (void)viewDidLoad{
[super viewDidLoad];
}
#pragma mark - Split view
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = NSLocalizedString(@"MasterButton", @"Master");
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
}
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
// Called when the view is shown again in the split view, invalidating the button and popover controller.
[self.navigationItem setLeftBarButtonItem:nil animated:YES];
self.masterPopoverController = nil;
}
@end
Run Code Online (Sandbox Code Playgroud)
您的DetailViewController必须连接到UINavigationController.如果您从Xcode的"New Project"菜单中设置一个新的master-detail-project,您将得到:

注意:每个Detail视图控制器必须连接到UINavigationController(直接或间接).
编辑:要连接多个UINavigationControllers,请执行以下操作:您的初始详细信息视图UINavigationController与拆分视图连接(像往常一样).其他每个细节视图UINavigationController都与主视图连接(使用替换segue):

如果要为用户提供切换回初始详细信息视图的可能性,还必须将初始视图控制器与主服务器连接(因此具有两个连接,一个连接到拆分,一个连接到主服务器).
要在详细视图控制器之间切换,请performSegueWithIdentifier:sender:在主视图控制器中调用.
编辑2:
要将详细视图添加为拆分视图的委托,请实现以下方法,该方法早于调用 viewDidLoad
- (void)awakeFromNib
{
self.splitViewController.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8569 次 |
| 最近记录: |