Tag: uiviewcontroller

呈现透明背景的模态视图控制器

我想以编程的方式呈现一个UIViewController ,它应该以透明的背景显示(或不)。 我想要iOS 7.0及以上版本。 我发现自己有很多问题(和答案),但他们无法帮助我。 这是我的应用程序的视图层次结构。 我正在使用侧边菜单控制器(RESideMenu)。 我有一个rootView(来自RESideMenu的基地) – >显示UINavigationController的中心控制器(以及一个左视图控制器)。 在要求中,我想介绍一个视图控制器 从推送的视图控制器(在导航层次结构中) 从呈现的视图控制器(在导航层级中) 另外,我需要介绍它并执行一些操作,然后将其删除。 我很确定,这应该在很多情况下,有(或没有)侧边菜单,甚至导航控制器。 我将一个单独的问题(当然也包括答案)发布到这个队列中,因为我认为这对于社区开发者来说可能是有帮助的,他们也可能因为缺乏可接受的解决scheme而感到沮丧。

Swift:使用button导航到新的ViewController

我有一个单一的视图应用程序连接到parsing和validation用户login信息,并更新一个UILabel说:“耶,你已经成功login” – 现在我想它导航到一个新的视图(这将是该应用程序)。 我已经把一个新的视图控制器拖到故事板上,并按住Ctrl键拖动button,并用show将它链接到新的控制器。 不过,当我加载应用程序,然后单击button,它会直接进入新的视图。 我需要它只在if-else语句的右边部分被触发时才会去那里。 这有道理吗? 感谢任何帮助家伙。 非常感激。 编辑 if语句是: if usrEntered != "" && pwdEntered != "" { PFUser.logInWithUsernameInBackground(usrEntered, password:pwdEntered) { (user: PFUser!, error: NSError!) -> Void in if user != nil { self.messageLabel.text = "You have logged in"; } else { self.messageLabel.text = "You are not registered"; } } } 并位于ViewController.swift文件中

使用委托和协议在2 UIViewController之间传递数据

我知道这个问题已经在这里被问及过很多次了。 但是,我是第一次处理这个事情,仍然无法在脑海中得到完美的实现。 这里的代码我有委托方法我实现从SecondViewController传递数据到FirstViewController 。 FirstViewController.h #import "SecondViewController.h" @interface FirstViewController : UITableViewController<sampleDelegate> @end FirstViewController.m @interface FirstViewController () // Array in which I want to store the data I get back from SecondViewController. @property (nonatomic, copy) NSArray *sampleData; @end @implementation FirstViewController – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { SecondViewController *controller = [[SecondViewController alloc] init]; [self.navigationController pushViewController:controller animated:YES]; } […]

如何在Swift中获得UIScrollView的垂直方向?

如何在VC中上下滚动/滑动方向? 我想在我的VC中添加一个UIScrollView或其他东西,可以看到用户滑动/向上或向下滑动,然后隐藏/显示一个UIView这取决于它是一个向上/向下的手势。

无法在Swift中的Storyboard中加载UIViewController XIB文件

我读过使用XCode storyboard来实例化视图控制器,它使用XIB的devise,但我有麻烦使这个工作在Swift(使用Xcode 6 Beta 6)。 我想知道如果我做错了什么,或者如果这个function不可用? 我创build了一个简单的存储库, https://github.com/jer-k/StoryboardTesting-Swift ,展示了上面的方法。 我设法通过添加并覆盖到init来解决问题 required init(coder aDecoder: NSCoder) { super.init(nibName: "TestViewController", bundle: NSBundle.mainBundle()) } 但我想知道是否还有可能让故事板为我处理。 创build一个超类让所有的UIViewControllersinheritance上面的代码并不是世界上最麻烦的事情,但我只是好奇于此。

“不止一次推送相同的视图控制器实例”不受支持“exception

我正在使用下面的代码来检索一些消息,并将其放入我的收件箱。 MyInboxVC *inboxVC=[MyInboxVC get ]; //upload all the pending messages UINavigationController *devNavController=[[MyappMgr get]getDeveloperNavigationController ]; [devNavController pushViewController:inboxVC animated:YES]; [devNavController setNavigationBarHidden:NO]; 我得到的例外 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<MyInboxVC: 0x1452a0>)' 这是什么意思? 我究竟做错了什么?

以编程方式设置约束

我正在试验如何使用UIScrollView。 经过很多麻烦,我终于得到了它的挂钩。 但现在我似乎又遇到了另一个障碍。 在这个简单的应用程序,我有一个滚动视图,为了它的工作,我必须设置视图的底部空间滚动视图约束为0,如这里所述,它工作正常。 我正在通过IB来完成。 现在我遇到了一个场景,我必须通过编程来完成这个部分。 我在viewDidLoad方法中添加了下面的代码。 NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0]; [self.view addConstraint:bottomSpaceConstraint]; 但似乎没有工作。 它在控制台窗口中输出以下消息,我不知道该怎么做。 无法同时满足约束。 下面列表中的至less一个约束可能是你不想要的。 试试这个:(1)看看每一个约束,试图找出你不期望的; (2)find添加不需要的约束或约束的代码并修复它。 (注意:如果你看到你不明白的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints)(“”,“”) 有人可以告诉我如何做到这一点? 我还附加了一个演示项目,以便您可以更好地了解这个问题。 更新: 首先谢谢你的回应。 使用答案中提到的方式,我能够得到它的工作。 然而,略有不同的情况下,它不是。 现在我试图以编程方式将视图加载到viewcontroller。 如果我可以进一步解释。 有2个视图控制器。 第一个是UITableViewController ,第二个是UIViewController 。 里面有一个UIScrollView 。 另外还有多个UIView ,其中一些视图的高度超出了屏幕的正常高度。 UITableViewController显示一个选项列表。 根据用户的select,一个特定的UIView将被加载到带有UIScrollView的UIViewController 。 在这种情况下,上述方法不起作用。 滚动没有发生。 我是否需要单独加载视图才能做一些不同的事情? 我已经在这里上传了一个演示项目,这样你就可以看到它的实际运行。 请参阅Email.xib并从表格视图列表中select电子邮件 。

如何识别导航堆栈中的前一个视图控制器

我有2个独立的navigationcontrollers RootViewController ,一个用RootViewController A,另一个用RootViewController B. 我能够将ViewController C推送到A或B的导航堆栈上。 问题:当我在ViewController C中时,如何知道我是否在属于A或B的堆栈中?

presentViewController:animation:YES视图不会出现,直到用户再次点击

我得到了一些与presentViewController:animated:completion奇怪的行为presentViewController:animated:completion 。 我所做的基本上是一个猜谜游戏。 我有一个UIViewController (frequencyViewController)包含一个UITableView (frequencyTableView)。 当用户点击包含正确答案的questionTableView中的行时,视图(correctViewController)应该实例化,其视图应该从屏幕底部向上滑动,作为模态视图。 这告诉用户他们有一个正确的答案,并重置后面的frequencyViewController准备好下一个问题。 correctViewController被解除button按下显示下一个问题。 这一切都工作正常,每当correctViewController的视图立即出现,只要presentViewController:animated:completion animated:NO 。 如果我设置animated:YES ,correctViewController被初始化,并调用viewDidLoad 。 但是viewWillAppear , viewDidAppear和presentViewController:animated:completion的完成块不会被调用。 该应用程序只是坐在那里仍然显示frequencyViewController,直到我再次点击。 现在,viewWillAppear,viewDidAppear和完成块被调用。 我调查了一下,这不只是另一个水龙头,将导致它继续。 似乎如果我倾斜或摇动我的iPhone这也可以导致它触发viewWillLoad等,就像它正在等待任何其他位用户input之前,它会进步。 这发生在一个真正的iPhone和模拟器,我通过发送摇命令模拟器certificate。 我真的不知道该怎么做…我真的很感激任何人都可以提供的帮助。 谢谢 这是我的代码。 这很简单 这是questionViewController中充当委托给questionTableView的代码 – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row != [self.frequencyModel currentFrequencyIndex]) { // If guess was wrong, then mark the selection as incorrect NSLog(@"Incorrect Guess: %@", [self.frequencyModel […]

在UIViewController的视图内的iOS嵌套视图控制器视图?

在UIViewController的视图中有一个嵌套的视图控制器的视图通常是不好的编程习惯吗? 比如说,我想要有一些对用户触摸有反应的交互元素,但是只占用屏幕的25%。 我想我会添加这个嵌套的视图控制器到我的UIViewController说: [self.view addSubview: nestedViewController.view];