标签: uisplitviewcontroller

UINabigationController里面的一个UITabBarController里面的UISplitViewController在iPhone上以模态方式呈现

我有一个UISplitViewController,它包含一个UITabBarController作为主视图.这个UITabBarController包含一个UINavigationController.详细视图也包含UINavigationController.

故事板

在iPad上,这可以按预期工作.的节目详细赛格瑞呈现在详细视图中导航控制器内的ImageView的.

另一方面,在iPhone上,我预计show detail segue会在主视图的导航控制器的堆栈上推送详细视图.但实际上它是在主视图上以模态方式呈现的.

从故事板中删除UITabBarController并直接在主视图中使用UINavigationController时,这可以正常工作.

有谁知道如何在iPhone上的主人UINavigationController堆栈上呈现详细视图?

iphone uitabbarcontroller uinavigationcontroller uisplitviewcontroller ios8

13
推荐指数
2
解决办法
2620
查看次数

如何制作以编程方式使用UISplitViewController和UINavigationController的通用iPhone/iPad应用程序?

我无法在任何地方找到一个好的答案.我正在为我的iPhone应用程序使用UINavigationController,所有内容都是以编程方式生成的,Interface Builder中没有任何内容.我正在尝试使用UISplitViewController和我现有的UINavigationController将我的应用程序移植到iPad,但我不确定我的程序逻辑应该分离iPhone或iPad的视图控制器.

我是否将主文件设置为使用其他应用程序委托,还是使用相同的应用程序委托并在其中有条件地设置用户界面?

除此之外,每当我尝试在模拟器上编译我的应用程序时,它都无法识别UISplitViewController甚至是我检查类是否存在的条件.

可以请有人把我放在正确的方向,记住我没有使用任何xibs?

iphone cocoa-touch ipad uisplitviewcontroller

12
推荐指数
1
解决办法
8369
查看次数

IOS新推出的Facebook iPhone App UISplitViewController布局

可能重复:
像iPhone上的Facebook应用程序一样

另一个突破.net开发人员现在试图习惯IOS的世界.

我喜欢新的Facebook iPhone应用程序的布局(2011年10月),并希望在我正在做的应用程序中实现类似的东西.我知道UISplitterControl在iPhone上不可用,但Facebook似乎已经有点神奇,让它在新的应用程序中显示出来.

在Facebook的实现中,它看起来他们使用了一个UINavigationController,当点击NavigationBar图标时,它会向右滑动x,从而用菜单项公开下面的视图.

如果有人可以帮助我解决这个问题,我将不胜感激,因为解决方案也是一个很好的学习曲线.

我已经尝试将UINavigationController设置为AppDelegate窗口根视图控制器,然后使用initwithframe加载自定义视图,其中包含菜单项作为隐藏在UINavigationcontroller根视图后面的子视图.然后当单击UINavgationController菜单项按钮时,将NavigationController向右滑动,从而使下面的视图显示菜单项.这提出了两个问题,首先是子视图定位不起作用,以及如何将实际的UINavigationController向右滑动公开下面的菜单视图.

请帮忙!

iphone facebook uinavigationcontroller uisplitviewcontroller ios

12
推荐指数
3
解决办法
2万
查看次数

iOS5打破UISplitViewController旋转回调,如何手动调用?

正如在SO上的其他问题中所报告的那样,iOS 5根据此发行说明更改了拆分视图控制器的旋转回调的发送方式.这不是一个骗局(我认为),因为我无法找到关于如何在iOS 5中调整拆分视图控制器使用以应对更改的另一个问题:

iOS 5中的旋转回调不适用于通过全屏显示的视图控制器.这意味着,如果你的代码呈现了另一个视图控制器视图控制器,然后用户随后旋转设备,以不同的取向,在解雇,底层控制器(即呈现控制器)将不会收到任何旋转回调.但请注意,呈现控制器在重新显示时将接收viewWillLayoutSubviews调用,并且可以从此方法查询interfaceOrientation属性并用于正确布局控制器.

我在根分割视图控制器中配置弹出窗口按钮时遇到问题(当你在肖像中时,应该在弹出框中显示左窗格视图).以下是当设备处于横向模式时,我的应用启动序列在iOS 4.x中的工作方式:

  1. 将拆分视图控制器安装到窗口中[window addSubview:splitViewController.view]; [window makeKeyAndVisible];.这导致在splitViewController:willHideViewController:withBarButtonItem:forPopoverController:委托上调用(即模拟横向 - >纵向旋转),即使设备已处于横向模式.

  2. 呈现全屏模式(我的加载屏幕),它完全覆盖下面的分割视图.

  3. 完成加载并关闭加载屏幕模式.由于设备处于横向模式,因此在显示分割视图控制器时,这会导致splitViewController:willShowViewController:invalidatingBarButtonItem:在代理上调用(即模拟纵向 - >横向旋转),从而使条形按钮项无效,将其从右侧移除拆分视图,留下我们想要的地方.万岁!

因此,问题在于,由于该发行说明中描述的更改,iOS 4.3内部发生的任何事情都会导致splitViewController:willShowViewController:invalidatingBarButtonItem:被调用不再发生在iOS 5中.我尝试了子类化UISplitViewController,因此我可以提供自定义的实现,viewWillLayoutSubviews如发行说明,但我不知道如何重现iOS 4触发的所需内部事件序列.我试过这个:

- (void) viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

    UINavigationController *rightStack = [[self viewControllers] objectAtIndex:1];
    UIViewController *rightRoot = [[rightStack viewControllers] objectAtIndex:0];
    BOOL rightRootHasButton = ... // determine if bar button item for portrait mode is there

    // iOS 4 never goes inside this 'if' branch
    if (UIInterfaceOrientationIsLandscape( [self interfaceOrientation] ) …
Run Code Online (Sandbox Code Playgroud)

rotation uisplitviewcontroller ios ios5

12
推荐指数
1
解决办法
4689
查看次数

iOS 5.1滑动手势被UISplitViewController劫持 - 如何避免?

UISplitViewController应用程序相关的iOS 5.1中的新行为似乎是拦截UISlider动作并产生不良结果.这也可能适用于UISegmented控件和处理从左到右手势的任何其他控制界面.

随着UISplitView在纵向,则主视图通常是隐藏的.从iOS 5.1开始,右侧滑动屏幕会显示设备左侧的主视图.问题是,滑动我的UISlider控件的拇指被误解为屏幕滑动:如果我向右侧的UISlider拇指急剧推动,则弹出主面板.

在我的应用程序中,有不良的副作用(和性能问题),使主视图更加明亮.

我认为这种行为是一个Apple bug.任何想法如何解决它?我可以以某种方式UISlider捕获手势并处理它,而不是将它传递给响应者链吗?

提前感谢任何见解!

uisplitviewcontroller swipe-gesture ios5.1

12
推荐指数
1
解决办法
3792
查看次数

在iPhone上使用splitviewcontroller首先描绘详细视图

我目前正在开发iOS 8并使用新的自适应框架开发应用程序.奇怪的是当我使用iPhone上的splitviewcontroller与这个故事板配置时,应用程序不是从主视图控制器开始,而是从细节控制器开始.这是一个错误,我怎么能修复它?在此输入图像描述

只有当包含master的navigationController存在时才会发生这种情况,如果我将其删除,应用程序将以主控制器启动.

iphone objective-c uisplitviewcontroller ios

12
推荐指数
2
解决办法
4912
查看次数

在iOS 8中的UISplitViewController的主视图中有一个UINavigationController

在我的UISplitViewController中,主视图是一个包含UITableViewController的UINavigationController.有时,当用户选择表中的项时,我必须在主视图中的现有表上推送另一个tableViewController.

在iOS 7中,在我的第一个UITableViewController中,我只是调用它

[self.navigationController pushViewController:otherTableVC animated:YES];
Run Code Online (Sandbox Code Playgroud)

在iOS 8中:

折叠拆分视图时,otherTableVC将成为详细视图!旋转设备后,我们并排看到两张桌子......

更糟糕的是,如果设备显示两个窗格,代码工作得很好,第二个表被推到主视图中的第一个表.但是,经过两次旋转后,两张桌子又是并排的.似乎UISplitViewController的折叠模式干扰了我自己的导航控制器......

如何在主视图中管理自己的UINavigationController?

谢谢

编辑:

我的主视图和详细信息视图都有一个导航控制器.为了解决我的问题,我刚刚发现,在折叠模式下,我必须创建一个额外的导航控制器并将其推送到主导航控制器上.

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:otherTableVC];
[self.navigationController pushViewController:navController animated:YES];
Run Code Online (Sandbox Code Playgroud)

所以我发现帽子我们可以将导航控制器推到另一个导航控制器中.

uinavigationcontroller uisplitviewcontroller ios8

12
推荐指数
1
解决办法
1万
查看次数

像在UISplitViewController上折叠一样,在SwiftUI中折叠doubleColumn NavigationView详细信息?

因此,当我在SwiftUI中列出列表时,会获得“免费”的主从详细信息拆分视图。

因此,例如:

import SwiftUI

struct ContentView : View {
    var people = ["Angela", "Juan", "Yeji"]

    var body: some View {
        NavigationView {
            List {
                ForEach(people, id: \.self) { person in
                    NavigationLink(destination: Text("Hello!")) {
                        Text(person)
                    }
                }
            }
            Text("")
        }
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif
Run Code Online (Sandbox Code Playgroud)

如果iPad模拟器在横向,并且第一个详细信息屏幕是表情符号,我会得到splitView。但是,如果人们点击名称,则详细信息视图为“ Hello!”。

一切都很棒。

但是,如果我以纵向方式运行iPad,则表情符号会向用户表示欢迎,然后就不会显示列表。您必须从左向右滑动才能使列表从侧面显示。

有谁知道一种显示导航栏的方法,该导航栏可以让用户点击以查看左侧的项目列表?因此,它不是仅带有表情符号的屏幕吗?

我不愿意留下一个注释,上面写着“从左侧扫入以查看文件/人员/所有内容的列表”

我记得UISplitViewController有一个可以设置的折叠属性。这里有这样的东西吗?

uisplitviewcontroller ios swiftui

12
推荐指数
2
解决办法
888
查看次数

UISplitviewcontroller不作为rootview控制器

我正在构建我的第一个iPad应用程序.我的一个要求是处理UISplitviewcontroller和UINavigationController.
我们提出的视图层次结构是

(LoginView) - > UINavigationView(LandingView + CollectionView) - > UISplitViewcontroller(DetailsView).

我们的应用程序仅支持横向模式
我指的是这个SO问题(以及GILT应用程序),作为newbi,我很难根据该描述完成它.

所以我的问题是
1)如果有人可以提供小代码片段或参考教程,我怎么能实现同样的事情
2)根据Apples HIG,UISplitviewcontroller应该是rootviewcontroller,如果不是.Apple会拒绝我的应用程序吗(显然GILT小组已被批准)
3)我找到了MGSplitViewController,我可以使用那个不是root吗?
任何帮助,将不胜感激.作为newbi,我希望我的问题是真实的

ipad uisplitview uisplitviewcontroller

11
推荐指数
2
解决办法
1万
查看次数

如何使用MasterDetail应用程序模板更新DetailView

我是使用拆分视图创建iPad应用程序的新手.当我第一次使用标准的MasterDetail应用程序模板(Xcode 4.2)创建项目时,它会创建一个MasterViewController和一个DetailViewController.从弹出表(主详细信息视图控制器)中选择行时,模板具有以下方法:

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

if (!self.detailViewController) 
{
    self.detailViewController = [[DetailViewController alloc]        initWithNibName:@"DetailViewController" bundle:nil]; 
}
[self.navigationController pushViewController:self.detailViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

现在我明白当你使用常规导航控制器时,如果你正在为iPhone编程,你只需要做这种类型的事情就可以将另一个视图控制器推到堆栈上.但是,使用此模板,它只是将详细信息视图推送到弹出窗口而不是更新已存在的内容.我很困惑,因为我需要更新以从弹出窗口中选择一些内容(主详细信息视图),然后进行detailView更新.

更新:

为了尝试测试已在DetailViewController中为您设置的"detailItem",我注释掉了pushViewController并添加了以下内容:

//[self.navigationController pushViewController:self.detailViewController animated:YES];
self.detailViewController.detailItem = @"Test";

// setter in detailViewController
- (void)setDetailItem:(id)newDetailItem
{
    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.
    // detailDescriptionLabel.text is a IBOutlet to the label …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uisplitviewcontroller ios xcode-template

11
推荐指数
1
解决办法
1万
查看次数