Tag: uinavigationcontroller

当UIToolBar具有自定义背景的子类时,工具栏的下半部分是黑色的?

我是inheritanceUIToolBar,这里是我如何重写UIToolBar的drawRect方法: – (void)drawRect:(CGRect)rect { UIImage *backgroundImage = [UIImage imageNamed:@"UIToolBar_Background.png"]; [backgroundImage drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; } 该应用程序使用通过initWithNavigationBarClass方法初始化的UINavigationController范例。 问题是工具栏的下半部分是黑色的? UIToolBar_Background.png高度为44像素(或视网膜为88)。 它不应该是下半部分黑色。

没有导航栏在视图中

我在我的iOS应用程序中有以下结构: RootViewController(显示核心数据的表视图控制器)。 在RootViewController上是一个包含4个button的视图。 button1:菜单… 按下button1之后, NSManagedObjectContext被传递给MenuViewController。 在MenuViewController上有几个button,其中一个是用来打开DoneViewController的,这是从RootViewController复制的(只有NSPredicates改变为显示不同的核心数据对象。 DoneViewController显示正确的预期的行,但它应该有一个导航栏,这是不显示。 这是用来打开DoneViewController的代码: – (IBAction)doneToDoaction:(id)sender { DoneViewController *viewController = [[DoneViewController alloc] init]; viewController.managedObjectContext = [self mainContext]; [self presentViewController:viewController animated:YES completion:nil]; } 我应该怎么做才能打开视图,并有像RootViewController导航栏吗? 我现在将所有的导航控制器实例,现在在我的应用程序: //AppDelegate.m – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Fetch the data to see if we ought to pre-populate NSError *error = nil; if (![[self fetchedResultsController] performFetch:&error]) […]

在没有segue的情况下在多个视图控制器之间共享数据(Swift 3)

我正在做一个QR码扫描仪测验应用程序,用户必须从10个问题得到10分。 在用户第一个qn之后,分数加1,并且将它们还原到qr扫描器页面,在那里他们必须扫描下一个qn的QR码。 问题是分数数据的传递。 有没有办法做到这一点没有segue? 这是我的qn1controller import UIKit class Quiz1Controller: UIViewController { @IBOutlet var question: UILabel! @IBOutlet var button1: UIButton! @IBOutlet var button2: UIButton! @IBOutlet var button3: UIButton! @IBOutlet var button4: UIButton! @IBOutlet var LabelEnd: UILabel! @IBOutlet var scorelabel: UILabel! var score = Int() var CorrectAnswer = String() override func viewDidLoad() { super.viewDidLoad() RandomQuestions() } override […]

我的导航控制器数量不断增长

我是iOS开发新手,并不完全确定故事板/ Segges / Pushing和Popping。 所以在我的应用程序,我有一个导航控制器与5视图控制器从一个到另一个。 当它到达最后一个视图控制器我有一个segue到第一个,我有一些prepareForSegue方法中列出的任务。 出于好奇,我决定检查[self.navigationController.viewControllers count]会发生什么。 我发现它不断增长,不断增长,这并不“感觉”正确。 我是否正确处理回到第一个屏幕? prepareForSegue方法是有用的,因为它允许我发送一些数据回到第一个segue。 是否有可能说当你回头清除导航控制器上的所有视图? 谢谢

更改UINavigationBar背景图片而不重新启动应用程序

现在,我有 [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed: @"UINavigationBarBackground.png"] forBarMetrics:UIBarMetricsDefault]; 我希望它改变背景点击。 现在,它只会在您重新启动应用程序后发生变化。 有没有办法让它改变导航栏的背景图像,而不必重新启动应用程序? 我试过了 [[UINavigationBar appearance] setNeedsDisplay]; 但它崩溃了:由于未捕获的exception“NSInvalidArgumentException”,原因:' – [NSMethodSignature getArgumentTypeAtIndex:]:索引(2)越界[0,1] 如果我尝试 [self.navigationController.navigationBar setNeedsDisplay]; 要么 [self.view setNeedsDisplay]; 什么都没发生。

用VC包含中的UINavigationController点击区域问题

我有一个iOS应用程序,我添加一个UINavigationController作为子视图控制器到主屏幕。 它是垂直排列的,所以导航控制器占据了主视图高度的底部并且是全angular。 有一个button(实际上是一个自定义视图与水龙头识别器),位于导航上方,用于隐藏和显示; 当导航被隐藏时,button位于主屏幕的底部,当导航显示时,button位于导航栏顶部的正上方。 问题是导航栏似乎拦截button的底部10点左右的触摸 。 为什么是这样? 添加孩子的代码如下所示: UIViewController *root = [[[UIViewController alloc]init]autorelease]; //some VC UINavigationController *nav = [[[UINavigationController alloc]initWithRootViewController:root]autorelease]; [self addChildViewController:nav]; CGRect rect = self.view.frame; CGFloat height = 500; nav.view.frame = CGRectMake(0, rect.size.height – height, rect.size.width, height); [self.view addSubview:nav.view]; [nav didMoveToParentViewController:self]; //Now the button UIView *view = [[[UIView alloc]initWithFrame:CGRectZero]autorelease]; view.backgroundColor = [UIColor greenColor]; [self.view […]

自定义ViewController转换不能正确resize

我有我的应用程序中的导航控制器的自定义Viewcontroller转换。 在执行转换时,它没有正确调整子视图控制器的内容。 默认的转换不会调整它的大小。 我在Github上添加了一个示例项目来演示这个问题。 embedded在导航控制器中的VC import UIKit class PopoverVCViewController: UIViewController, UIViewControllerTransitioningDelegate, UINavigationControllerDelegate { let animator = Animator() override func viewDidLoad() { super.viewDidLoad() navigationController?.delegate = self // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: […]

iOS版。 如何更改UINavigationBar高度并一次更改其他子视图的框架?

我使用基于导航的应用程序,例如有一些viewControllers与UITableView 。 如果我更改UINavigationBar高度,那么我必须手动更改每个viewController的其他元素的框架。 这个问题有什么共同的解决办法吗?

iOS – 导航和自定义视图

碰撞: – [UIImageView setParentViewController:]:无法识别的select发送到实例0x58701e * termintating由于未捕获的应用'NSInvalidArgumentExecption',原因:' – [UIImageView setParentViewController:]:无法识别的select发送到实例0x58701e0' 这发生在我试图推送没有IB的自定义UIViewController。 当我用IB来做这件事的时候,它并不是我所需要的。 什么是要求我的代表 -(void)switchToTrailerOne { CGsize screenSize = [UIScreen mainScreen].bounds.size; CGRect screenBounds = CGRectMake(0, 0, ScreenSize.width, screenSize.height); TrailersViewController *trailersController = [[TrailersViewController alloc] initWithFrame:screenBounds]; [self.navController pushViewController:trailersController animated:NO]; (Crashes on this line) [trailersController gotoFirstTrailer]; } 向我询问任何其他代码,看起来我几乎从来没有离开过一个小时以上的时间。 编辑:文件有点长,你感兴趣的特定部分? 我会张贴我觉得有可能的几个canidates -(void)loadView{ CGSize screenSize = [UIScreen mainScreen].bounds.size; CGRect screenBounds = CGRectMake(0, […]

BackBarButton将不会显示正确的标题

我试图把我的backButton设置为一个简单的“<”像这样: self.navigationItem.backBarButtonItem = UIBarButtonItem(title:"", style:.Plain, target:nil, action:nil) print(self.navigationItem.backBarButtonItem?.title) 打印将显示“”,但在模拟器上运行我的应用程序将始终显示前一个VC的标题。 虽然我testing了 navigationController?.navigationBar.tintColor = UIColor(red:0.60, green:0.60, blue:0.60, alpha:1.0) 将改变button的颜色。 注意: 我从一个UINavigationControllerembeddedUIViewController只是一个UIViewController