Tag: uiviewcontroller

UILabel子类用自定义颜色初始化

我的目标是在我的视图控制器中设置我的自定义UILabel子类的textColor 。 我有一个名为CircleLabel的UILabel子类。 这里是它的基础: class CircleLabel: UILabel { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! } override init(frame: CGRect) { super.init(frame: frame) } override func drawRect(rect: CGRect) { self.layer.cornerRadius = self.bounds.width/2 self.clipsToBounds = true super.drawRect(rect) } override func drawTextInRect(rect: CGRect) { self.textColor = UIColor.whiteColor() super.drawTextInRect(rect) } func setProperties(borderWidth: Float, borderColor: UIColor) { self.layer.borderWidth = CGFloat(borderWidth) […]

IOS在运行时更改故事板默认视图控制器

它可以重写故事板的默认视图控制器来显示一个不同的控制器呢? 这当然会在AppDelegate中发生。

当应用程序恢复活动状态时,MPMoviePlayerViewController被解散

当我设置我的iPhone睡觉,切换到另一个应用程序等,然后再回来,事先可见的MPMoviePlayerViewController (与presentMoviePlayerViewControllerAnimated:呈现)不存在了。 当我的应用程序失去焦点时,如何维护它?

在UIViewController中添加UINavigationController

我有一个UIToolbar与UIToolbar(底部),我想添加一个UINavigationController与UINavigationBar里面。 但是UINavigationController不显示。 MyViewController.m: – (void)viewDidLoad { [super viewDidLoad]; int toolBarHeight = 44; UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, [self.view bounds].size.height-toolBarHeight, [self.view bounds].size.width, toolBarHeight)]; UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil]; toolBar.items = @[button]; [self.view addSubview:toolBar]; MyNavigationController *myNav = [[MyNavigationController alloc] init]; [self addChildViewController:myNav]; }

从一个子uiviewcontroller调用一个父uiviewcontroller方法

我有一个父UIViewController,它打开一个孩子UIViewController: let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("myChildView") as! UIViewController self.presentViewController(vc, animated: true, completion: nil) 我在ChildView中按下一个Button应该closuresChildView并在父视图中调用一个方法: self.dismissViewControllerAnimated(true, completion: nil) CALL PARENTS METHOD ?????? 怎么做 ? 我发现一个很好的答案( 链接到良好的答案 ),但我不知道这是否与UIViewControllers的最佳做法。 有人可以帮忙吗?

UIViewController生命周期调用结合状态恢复

我试图在使用iOS 6+和故事板的应用程序中实现状态恢复,但是我遇到了一些问题,以防止重复调用重复方法。 如果我只是启动应用程序,那么我需要在viewDidLoad设置UI: – (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; } 这在一个正常的,非国家恢复的世界里工作得很好。 现在我已经添加了状态恢复和恢复一些属性后,我需要更新与这些属性的用户界面: – (void)decodeRestorableStateWithCoder:(NSCoder *)coder { [super decodeRestorableStateWithCoder:coder]; // restore properties and stuff // […] [self setupUI]; } 所以现在发生的是,首先从viewDidLoad调用setupUI方法,然后再从decodeRestorableStateWithCoder:调用setupUI方法。 我没有看到一个我可以覆盖的方法,总是被称为最后一个。 这是方法调用的正常顺序: awakeFromNib viewDidLoad中 viewWillAppear中 viewDidAppear 当使用状态恢复时,这被称为: awakeFromNib viewDidLoad中 decodeRestorableStateWithCoder viewWillAppear中 viewDidAppear 我不能把调用的setupUI放在viewWillAppear因为这样它也会在你每次回到视图时执行。 如果decodeRestorableStateWithCoder被调用BEFORE的viewDidLoad将会更方便,因为那样你可以使用恢复的属性。 可悲的是,不是这样,所以…我怎么能阻止做viewDidLoad的工作,当我知道我需要在decodeRestorableStateWithCoder之后重新做一遍?

iOS – 将数据传递给推送的viewcontroller

当推视图控制器时,我怎么也传递数据(比如“asdf”:123)? 你应该添加对象到NSBundle?

被呈现后被UITransitionView阻止的视图

我有一个侧面导航控制器,并通过UIButton呈现。 当我通过[self presentviewcontroller: NC animated: YES completion: nil]直接将这个NC视图控制器作为根视图控制器[self presentviewcontroller: NC animated: YES completion: nil] ,由于某种原因,NC的菜单端被一个UITransitionView阻塞,我无法消失。 我附上了一张图片 。 是另一个。 我已经尝试了以下内容: UIWindow *window = [(AppDelegate *)[[UIApplication sharedApplication] delegate] window]; window.backgroundColor = kmain; CATransition* transition = [CATransition animation]; transition.duration = .5; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type = kCATransitionPush; transition.subtype = kCATransitionFromTop; [nc.view.layer addAnimation:transition forKey:kCATransition]; [UIView transitionWithView:window duration:0.5 options:UIViewAnimationOptionTransitionNone […]

屏幕左侧的UIButton(iOS 7导航幻灯片区域中)未突出显示

我有一个视图控制器(在XIB)左侧的UIButton,比如说100点宽。 如果视图控制器在常规选项卡上(即,未在导航堆栈上压入),button突出显示如预期的那样。 但是,当视图控制器位于“更多”选项卡上时(按导航堆栈上的button),左侧的button(例如最左侧的50个点)不会突出显示。 buttonfunction正在调用。 但是,当点击右侧它确实突出显示。 (顺便说一下,我认为这是一个普遍的问题,当视图控制器是从任何其他视图控制器推;可能不必是更多选项卡。 经过一番研究后发现,当我点击左侧屏幕区域时,可以将iOS-7滑回到父视图。 任何想法,为什么这是,以及如何使button再次正常工作。 谢谢你的时间!

从一个nib文件加载UIView没有猜测

好的,还有一个问题。 我正在创build一个名为ProgressView的UIView,它是一个具有活动指示器和进度条的半透明视图。 我希望能够在需要时在我的应用程序的不同视图控制器中使用此视图。 我知道有三种不同的方式(但我只对其中一种感兴趣): 1)以编程方式创build整个视图,根据需要进行实例化和configuration。 不用担心,我得到那一个。 2)在界面生成器中创buildUIView,添加所需的对象,并使用下面的方法加载它。 与此问题是,我们基本上猜测该视图是objectAtIndex:0,因为在文档中找不到从[[NSBundle mainBundle] loadNibName:函数返回的元素的顺序的引用。 NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"yournib" owner:self options:nil]; UIView *myView = [nibContents objectAtIndex:0]; myView.frame = CGRectMake(0,0,300,400); //or whatever coordinates you need [scrollview addSubview:myView]; 3)子类UIViewController,让它按照正常的方式pipe理视图。 在这种情况下,我绝对不会将视图控制器推到堆栈上,而只能看到其主视图: ProgressViewController *vc = [[ProgressViewController alloc] initWithNibName:@"ProgressView" bundle:nil]; [vc.view setCenter:CGPointMake(self.view.center.x, self.view.center.y)]; [self.view addSubview:vc.view]; [vc release]; 据我所知,#3是这样做的正确方式(除编程),但我不完全确定是否可以安全地释放ProgressView的视图控制器,而另一个控制器的视图保留其主视图(直觉说它会泄漏?)? 在这种情况下,我应该在内存pipe理方面做些什么,何时何地发布ProgressView的视图控制器? 预先感谢您的想法。 干杯, ROG