标签: uinavigationcontroller

如何从uinavigationcontroller堆栈中删除特定的视图控制器?

我有一个uinavigationcontroller.登录后我想从UInavigationcontroller堆栈中删除RegisterViewController,LoginViewController等视图控制器.

我的意思是我必须从堆栈中删除特定的视图控制器?怎么可能.?

我查了这篇文章

http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller's-root-view-controller/

所以我们可以把它变成一个数组

NSArray *allviewcontrollers= [(UINavigationController *)navigationController viewControllers];
Run Code Online (Sandbox Code Playgroud)

但是如何做进一步的过程..这个问题正在狩猎我很久..请回答我..谢谢你

navigation iphone objective-c uinavigationcontroller

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

在viewWillDisappear期间隐藏UINavigationController的UIToolbar:

我有一个带有UITableView菜单的iPhone应用程序.选择表中的行时,相应的视图控制器将被推送到应用程序的UINavigationController堆栈中.

我的问题是,MenuViewController它不需要工具栏,但是UIViewControllers它们被推入堆栈中.每个UIViewController那个被推开的呼叫setToolbarHidden:animated:viewDidAppear:.要隐藏工具栏,我呼吁setToolbarHidden:animated:viewWillDisappear:.

显示工具栏的工作方式,以便当推出的视图出现时,工具栏向上滑动并且视图正确调整大小.但是,按下后退按钮时,工具栏会向下滑动,但视图不会调整大小.这意味着当另一个视图过渡时,沿着视图底部有一个黑色条带.我已经尝试在隐藏工具栏之前将工具栏的高度添加到视图的高度,但是这会导致视图在转换,以便仍然有一个黑条.

我意识到我可以管理自己的UIToolbar,但UINavigationControllers为了方便起见,我想使用内置的UIToolbar.

这个论坛帖子提到了同样的问题,但没有提到解决方法.

iphone cocoa-touch uitoolbar uikit uinavigationcontroller

30
推荐指数
4
解决办法
2万
查看次数

如何将自动旋转约束到某些视图的单一方向,同时允许其他方向的所有方向?

这个问题是关于UINavigationController中的iOS设备旋转和多个受控视图.有些观点应该限制为纵向,有些观点应该自由旋转.如果您尝试使用三个视图创建最简单的设置,您会注意到自动旋转行为有一些非常令人讨厌的怪癖.然而,这个场景非常简单,所以我想我要么没有正确地进行自动旋转实施,要么就是忘了什么.

我有一个非常基本的演示应用程序,显示了怪异,我制作了一个视频显示它在行动.

设置非常基本:调用三个视图控制器FirstViewController,SecondViewController并且ThirdViewController所有扩展AbstractViewController显示带有类名称的标签,并且shouldAutorotateToInterfaceOrientation:当设备处于纵向时返回YES .SecondViewController重写此方法以允许所有旋转.所有三个具体类都添加了一些彩色方块,以便能够通过将控制器推入/关闭来在视图之间导航UINavigationController.到目前为止,我想说的是一个非常简单的场景.

如果您以纵向或横向方向握住设备,这是我不仅希望实现的结果,而且还期望.在第一张图片中,您会看到所有视图都是"直立",而在第二张图片中,您会看到只有第二个视图控制器反转设备的方向.要清楚,应该可以从横向模式的第二个视图导航到第三个视图,但因为第三个视图仅支持纵向方向,所以它应该只能以纵向显示.查看结果是否正常的最简单方法是查看载体条的位置.

纵向模式下设备的预期视图方向 横向模式下设备的预期视图方向

但这个问题在这里是因为实际结果完全不同.根据您在旋转设备时所处的视图,并根据您导航到下一个视图,视图将不会旋转(具体而言,didOrientFromInterfaceOrientation:永远不会调用该方法).如果你在第二个横向并且导航到第三个,它将具有与第二个相同的方向(=坏).但是,如果您从第二个导航回到第一个,则屏幕将旋转为"强制"纵向模式,并且载波条将位于设备的物理顶部,无论您如何握住它.视频更详细地显示了这一点.

横向模式下设备的实际视图方向

我的问题是双重的:

  1. 为什么第一个视图控制器会向后旋转,而不是第三个?
  2. 当您只希望某些视图自动旋转而不是其他视图时,需要采取哪些措施才能从您的视图中获取正确的行为?

干杯,EP.

编辑:作为奖励之前的最后一招,我完全重写了这个问题,使其更短,更清晰,并希望更有吸引力给出答案.

cocoa-touch objective-c uiviewcontroller uinavigationcontroller device-orientation

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

CALayer - 暗影导致性能下降?

所以我在我的navigationcontroller上做了一些自定义动画,以及它推送和弹出viewControllers的方式.

一切顺利.只要我添加以下代码(在子类中UINavigationController),我就会面临巨大的性能损失.添加阴影后,所有动画都变得非常迟钝.这是预期的还是我在代码中做错了什么?

// This code gets called once during NavigationController initialization.
[self.view setClipsToBounds:NO];
[self.view.layer setCornerRadius:5];
[self.view.layer setShadowOffset:CGSizeMake(0, 20)];
[self.view.layer setShadowColor:[[UIColor yellowColor] CGColor]];
[self.view.layer setShadowRadius:20.0];
[self.view.layer setShadowOpacity:1];
Run Code Online (Sandbox Code Playgroud)

编辑:

将我的阴影半径更改为1,它仍然很慢

iphone shadow calayer uinavigationcontroller ios

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

在UINavigationController中为所有视图控制器添加相同的按钮

我有一个UINavigationController(像一个向导页面一样)我以编程方式创建,我需要显示一个"取消"按钮来取消任何进程UIViewController.

创建UINavigationController:

FirstVC *firstVC = [[[FirstVC alloc] initWithNibName:@"FirstPage" bundle:nil] autorelease];
firstVC.delegate = self;

navigationController = [[UINavigationController alloc] initWithRootViewController:firstVC];
[self.view addSubview:navigationController.view];
Run Code Online (Sandbox Code Playgroud)

添加取消按钮:

UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelRequestNewLeave:)];
navigationController.topViewController.navigationItem.rightBarButtonItem = cancelButton;
[cancelButton release];
Run Code Online (Sandbox Code Playgroud)

但当我按下第二页时UINavigationController,取消按钮上没有显示UINavigationBar.如果我回到第一页,取消按钮就在那里.所以,显然该按钮仅为第一个视图添加.我相信这是因为我不是子类UINavigationController,因为我需要在子视图中使用它.但我不知道如何设置rightBarButtonItemUINavigationController其中编程方式创建.

navigationController.topViewController.navigationItem.rightBarButtonItem = cancelButton;
Run Code Online (Sandbox Code Playgroud)

有人可以对此有所了解吗?

提前致谢.

iphone uinavigationcontroller ios

29
推荐指数
5
解决办法
2万
查看次数

pushviewcontroller动画很慢/波涛汹涌

我推ViewController它含有不太多的意见,UIScrollView这里面包含10次,我有一个单身ViewController,没有再次释放和分配一次又一次地推ViewController,所以所有的事情,我在做viewDidLoad(),和viewWillAppear(),但动画是缓慢的,波涛汹涌,它可能是什么?

uiviewcontroller uinavigationcontroller pushviewcontroller

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

dismissViewControllerAnimated VS popViewControllerAnimated

我想知道它们的不同之处.什么时候我可以打电话

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

什么时候打电话

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

根据apple的文档:dismissViewControllerAnimated意味着"解除接收者提供的视图控制器".但我总是不能通过这种方法解雇视图控制器.

uiviewcontroller uinavigationcontroller ios

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

在iOS7中自定义navigationBar - 标题颜色不起作用

我试图在iOS7中自定义导航控制器的navigationBar,标题颜色不会改变.我正在做以下事情:

    [navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:46.0f/256.0f green:46.0f/256.0f blue:46.0f/256.0f alpha:1]];
    [navigationController.navigationBar setTranslucent:NO];
    [navigationController.navigationBar setTitleTextAttributes:@{[UIColor whiteColor]:UITextAttributeTextColor}];
    [self presentViewController:navigationController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

navigationBar半透明关闭并且很暗,但标题也保持黑暗.我也尝试创建一个自定义标签,并将其设置为标题视图,运气不佳.

如何更改标题颜色?

objective-c uinavigationbar uinavigationcontroller ios7 swift

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

在故事板上的第二个ViewController中无法访问iOS 8导航栏

我是iOS开发的新手,还没有以编程方式尝试过.我更愿意在故事板中使用它.

我正在遵循XCode 6.1中XCode 4.5的这个有点过时的教程来创建一系列由一个导航控制器连接的视图. http://youtu.be/rgd6mCuzlEc

截图

一旦我创建了第二个视图控制器,我无法双击导航栏来更改名称,我无法为其添加一个条形按钮.

我有一个Segue从视图1到2的条形按钮"Item"进入.注意在"View Controller Scene"中没有导航项.如果我向视图控制器添加任何元素,它们属于"视图"而不是"视图控制器",与视图控制器1不同,它位于"一"下.

这是对XCode的限制吗?我使用了错误的Segue(Show)吗?我缺少隐藏的设置或定制吗?

我实际上有两个视图控制器工作,并在一个单独的项目中失败第三,但我不知道我做了什么,所以我很确定我可能无法重现..

编辑: 解决方法而不是新的自适应SHOW segue,使用已弃用的PUSH segue,添加条形按钮项,然后更改回自适应SHOW segue.

xcode uinavigationbar uiviewcontroller uinavigationcontroller ios

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

如何在iOS 8中使用UISearchController,其中UISearchBar位于导航栏中并具有范围按钮?

我正在尝试使用UISearchControlleriOS 8中的新功能,并将其嵌入UISearchBar到我的UINavigationBar.这很容易完成如下:

searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.delegate = self
searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
navigationItem.titleView = searchController.searchBar
Run Code Online (Sandbox Code Playgroud)

但是当我添加范围按钮时:

searchController.searchBar.showsScopeBar = true
searchController.searchBar.scopeButtonTitles = ["Posts, Users, Subreddits"]
Run Code Online (Sandbox Code Playgroud)

它添加了背后的按钮UISearchBar,显然看起来很奇怪.

我该怎么做?

uinavigationcontroller uisearchbar ios ios8 uisearchcontroller

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