掌握详细的 uisplitViewController 和 UINavigationController 视图

Posted

技术标签:

【中文标题】掌握详细的 uisplitViewController 和 UINavigationController 视图【英文标题】:Master detail uisplitViewController and UINavigationController view 【发布时间】:2013-04-09 14:45:07 【问题描述】:

我尝试从详细视图推送到另一个视图。我在detailView“ConRDPDetailViewController”中有一个tableView,当我单击一行时,我会喜欢它,它会推送新视图“BookmarkEditorController”。 这是我在“ConRDPDetailViewController”中尝试这样做的方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
        
                ComputerBookmark* bookmark = nil;
            if([indexPath section] == SECTION_BOOKMARKS)
            
                    // first row has either quick connect or add bookmark item
                    if([indexPath row] == 0)
                    

                   // show add bookmark controller: is there I try to push the new View
                     BookmarkEditorController* bookmarkEditorController = [[[BookmarkEditorController alloc] initWithBookmark:[[ComputerBookmark alloc] initWithBaseDefaultParameters]] autorelease];
                     [bookmarkEditorController setTitle:NSLocalizedString(@"Ajouter Connexion", @"Add Connection title")];
                        UINavigationController *view = [[UINavigationController alloc] initWithRootViewController:bookmarkEditorController];

                     [view.navigationController pushViewController:bookmarkEditorController animated:YES];
                     [bookmarkEditorController setDelegate:self];

                    [bookmarkEditorController setHidesBottomBarWhenPushed:YES];



                     


            
    

但是什么也没发生,这是我在 AppDelegate.m 中的方法 didFinishLaunchingWithOptions

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    [self redirectConsoleLogToDocumentFolder];




    // Initialize the app window
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    AuthentificationViewController *authentificationViewController =[[AuthentificationViewController alloc] initWithNibName:@"AuthentificationView" bundle:nil];
    //self.window.rootViewController = self.splitViewController;
    self.window.rootViewController = authentificationViewController;
       [self.window makeKeyAndVisible];

    // The new popover look for split views was added in ios 5.1.
    // This checks if the setting to enable it is available and
    // sets it to YES if so.
    // if ([self.splitViewController respondsToSelector:@selector(setPresentsWithGesture:)])
    // [self.splitViewController setPresentsWithGesture:YES];


    return YES;

提前谢谢你

【问题讨论】:

只是让您知道:这是“身份验证”。不要想成为一个拼写纳粹:) @Erway Software 这是故意完成的,“认证”是法语而不是英语,我知道英语中的“认证”是“认证”。否则,谢谢您的评论,但我怀疑我的问题是否存在。 对不起。不知道是法语。 如果有人来这里寻找 Swift 和 iOS8 中的解决方案 - swiftwala.com/multiple-detail-views 【参考方案1】:

您需要将表格视图控制器嵌入到导航控制器中。

然后你可以用这段代码推送详细视图:

BookmarkEditorController* bookmarkEditorController = [[[BookmarkEditorController alloc] initWithBookmark:[[ComputerBookmark alloc] initWithBaseDefaultParameters]] autorelease];
[bookmarkEditorController setTitle:NSLocalizedString(@"Ajouter Connexion", @"Add Connection title")];
[self.navigationController pushViewController:bookmarkEditorController animated:YES];
[bookmarkEditorController setDelegate:self];
[bookmarkEditorController setHidesBottomBarWhenPushed:YES];

【讨论】:

感谢您的快速回答我之前尝试过您的解决方案,但结果是一样的,没有推送,而且更多 [self navigationcontroller] 为空。为什么?? 我无法将表格视图控制器嵌入到导航控制器中,因为当我尝试通过“菜单选择”编辑器“/“嵌入”/“导航控制器”时,选项被禁用。它是可以通过编程方式完成吗??? 在故事板编辑器中是可能的。尝试手动添加导航控制器并将表格视图控制器连接到它。 请您给我一个示例,以编程方式添加导航控制器并将其连接到 tableView?提前致谢

以上是关于掌握详细的 uisplitViewController 和 UINavigationController 视图的主要内容,如果未能解决你的问题,请参考以下文章

UISplitViewController 全屏查看详细信息

嵌套详细视图(UISplitViewController)中缺少后退按钮

详细使用 UINavigationController 时的景观 UISplitViewController

UISplitViewController 首先显示详细视图

iOS-如何在 UISplitViewController 详细视图上方添加按钮

UINavigationController 作为 UISplitViewController 的详细视图