Tag: uiviewcontroller

在另一个UIViewController中embeddedUIViewController视图

在我的应用程序中,我有一个login注册忘记词剑线框。 该过程的每个步骤都在一个单独的UIViewController ,所有这些都在同一个Storyboard ,并且每个控制器之间的转换都是animation的。 到现在为止还挺好。 现在我们改变了devise,所以所有的视图都有相同的背景元素和一个头(不完全是一个UINavigationBar ),我不喜欢animation的感觉,总是看起来实际上是相同的,但只是performance出不同的forms。 所以我正在考虑采用不同的方法,而不是推动整个控制器,只是显示/隐藏其视图,而是保持在同一个控制器中。 1)我第一次尝试实例化控制器,我想要显示的视图,并将其添加到当前视图。 就像是。- – (IBAction)btnRegisterPressed:(id)sender { _viewHome.hidden = YES; RegisterController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"registerNewUser"]; [self.view addSubview:controller.view]; } 这一个将是完美的,因为我使用静态UITableViews我的forms,所以据我所知,我需要每个UITableViewController 。 但似乎IBOutlets和IBActions被打破了。 这种方法在某种程度上是可能的吗? 如果是这样,这被认为是一个坏习惯? 2)我的第二个select是创build一个控制器内的所有视图,并正确显示/隐藏它们。 这将是一个难以维护,并有可能是我不得不忘记静态UITableViews 。 任何人都可以给我一些build议,哪个选项会更好,或者指向我失踪的其他任何可能的方法?

redirect到另一个视图控制器

我正在开发iPhone和iPad的iOS应用程序。 我有两个故事板文件,名为:Main_iPhone和Main_iPad。 我已经在这些故事板中做了一个login屏幕,我build立了一个LoginViewController。 成功login后,我想将用户redirect到Main_iPhone或Main_iPad中的另一个屏幕。 我把这个屏幕命名为仪表板,在Identity Inspector中给出了自定义的类DashboardViewController。 我已经创build了这个文件。 我正在为Xcode 5中的iOS 7开发 我如何将用户redirect到仪表板?

使图像可以从其他ViewController访问

我只想知道制作一个名为profpic的图像的代码,可以访问我制作或打算制作的所有其他ViewController。 我已经阅读了许多关于全局variables,公共variables和其他build议的文章。 如果有帮助,我特别使用这个来显示ViewControllerA的图像作为ViewControllerB的背景。

在子视图控制器中的UITableView委托

我有一个UIViewController调用父 ,并有一个UIView子视图中的父 。 我想添加两个不同的可能的UIViewControllers ,称为A和B作为父的子视图。 A是一个带有UITableView的UIViewController 。 我将A的UITableView的datasource和delegate设置为A。 然后,我可以“成功”地将A添加到父项 ,为A设置数据如下: AViewController *vc = (AViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"A"]; NSMutableArray *data = [@[@"foo",@"bar",@"baz"] mutableCopy]; vc.posts = data; [self.container addSubview:vc.view]; 通过成功,我的意思是我在单元格中看到正确数据的tableview。 即foo,bar和baz作为行。 我的问题:当我尝试滚动tableview,它崩溃。 当我尝试select一个单元格时,出现以下exception: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UIAppearanceCustomizableClassInfo tableView:didSelectRowAtIndexPath:]: unrecognized selector sent to instance 0x78c64430'

什么时候在容器环境中调用viewDidLoad?

我的情况如下所示: 我有不同的容器视图。 如果用户触发一个点击事件,我创build一个新的容器并调用一个方法,它设置了一个子视图控制器的内容。 我遇到的问题是当时的对象(在我的情况下是UIWebView )是可用的。 原因是viewDidLoad目前还没有被调用,webview没有设置。 现在我在构造函数中移动了webview的初始化。 这导致我的第二个问题: 在另一个容器上,我加载了相同的子视图控制器(Web视图)。 因为视图的边界在构造函数中不可用,所以我切换到了自动布局。 现在自动布局不能应用,因为没有超视图。 问题的原因是子视图的viewDidLoad在被添加到容器视图之前被调用(我设置了我的约束)。 所以没有superview可用的方面,我试图将其添加为子视图控制器。 然后我将自动布局设置移到updateViewConstraints中。 现在我想知道什么时候会调用viewDidLoad 。 在视图控制器的初始化之后我不能假设,因为这不是事实。 当我的子视图控制器准备好之后,我怎样才能可靠地传递数据? 我在这里做错了什么? 什么时候将viewDidLoad调用? 有时它在初始化之后被调用,有时不被…

翻转ViewController,但保持与Storyboard相同的NavigationController

我试图翻转导航控制器内的视图控制器,但迄今为止一点成就,我尝试了成千上万的解决scheme,但没有适合。 我想要像这样翻转控制器: 按下button进入地图: http : //i39.tinypic.com/fabul3.jpg 按相同的button返回更改图像: http : //i40.tinypic.com/2qa1y0h.jpg 我需要为故事板保留故事板。 你有什么想法或例子如何做到这一点?

将一些数据传回给RootViewController iOS 7

假设我们在我们的UINavigationController有3个ViewController叫做ViewControllerA,ViewControllerB,ViewControllerC。 具体来说,ViewControllerA是RootViewController而ViewControllerB和ViewControllerC则是在它上面推送的。 所以,目前ViewControllerC是在顶部和用户可见。 我想通过调用[self.navigationController popToRootViewControllerAnimated:YES];返回到ViewControllerA [self.navigationController popToRootViewControllerAnimated:YES]; 方法并从这里传递一些数据到ViewControllerA。 我必须根据从ViewControllerC传递的数据更新一些用户界面。 如果我不得不从ViewControllerB返回数据,那么我可以实现自定义协议/委托。 但是,在上述情况下,什么是一个好的方法? 在此先感谢您的帮助。

一些代码不在另一个ViewController调用的方法中执行

我的问题 我有一个标准的UIViewController 。 通过按下button,它会加载一个表单模式视图控制器。 当按UIBarButtonItem解除这个模式视图时,我通过执行下面的方法来调用一个方法: ViewController *main = [[ViewController alloc] initWithNibName:nil bundle:nil]; [main updateLabel]; 在方法-(void)updateLabel在主ViewController我设置标签的文本,但标签不会改变。 但我知道函数被调用,因为如果我做一个NSLog(@"Method call test);而不是label.text = @"Test"我可以在控制台中看到消息。 我究竟做错了什么? 它必须是我在主ViewController调用方法的方式,因为我可以在其他地方轻松更改标签。 我想做的事: closures模式视图控制器时,我想在主视图控制器中调用一个方法,在这种情况下更改标签的文本。 谢谢你的帮助!

iOS:错误的效果与“Recognizer.view.center = CGPointMake(…”

我使用locationInView设置我的bouton当用户释放它的位置。 发布之后,我给出之前存储的位置,但事实上,我的button不会返回到正确的位置。 这我的代码: – (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer{ CGPoint translation = [recognizer translationInView:self.view]; recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y); [recognizer setTranslation:CGPointMake(0, 0) inView:self.view]; static CGPoint startLocation; if (recognizer.state == UIGestureRecognizerStateBegan) { startLocation = [recognizer locationInView:self.view]; NSLog(@"Began: %d" @"-" @"%d", (int)startLocation.x , (int)startLocation.y); } if (recognizer.state == UIGestureRecognizerStateEnded) { NSLog(@"Ended Bef: %d" @"-" @"%d", (int)startLocation.x, (int)startLocation.y); […]

在我的UIViewController中放置有什么区别吗?

可能重复: [super viewDidLoad]约定 在我的UIViewController的viewDidLoad中放置[super viewDidLoad]是否有所作为? 也就是说,它应该在开始(在我的代码设置UIViewController之前)或结束)在我的代码之后设置UIViewController)的方法,还是没有什么区别?