Tag: uiviewcontroller

View Controller在发布后收到一条消息,导致崩溃

我有一个设置,我提出了一个UIPickerViewController(模态),然后一些更多的控制器被推上堆栈进行图像编辑。 如果我点击后退button并进入根视图控制器,然后点击另一个选项卡,应用程序崩溃。 这是崩溃消息: -[PostPhotoViewController respondsToSelector:]: message sent to deallocated instance 0x19b16a60 我运行僵尸工具,它看起来像堆栈上的最后一个视图控制器(PostPhotoViewController)获取消息发送到它,即使它已被释放。 iOS5和iOS6都出现这种情况,所以我没有做任何手动释放/保留。 我已经设置所有的零售点无PostPhotoVC并退订所有通知。 该消息似乎来自标签栏控制器。 不知道如何阻止它,有什么想法? 这里的僵尸读数: # Address Category Event Type RefCt Timestamp Size Responsible Library Responsible Caller 0 0x1b730790 PostPhotoViewController Malloc 1 00:19.248.903 256 UIKit -[UIClassSwapper initWithCoder:] 1 0x1b730790 PostPhotoViewController Retain 2 00:19.248.948 0 UIKit UINibDecoderDecodeObjectForValue 2 0x1b730790 PostPhotoViewController Retain 3 00:19.248.998 0 […]

如何在同一个ViewController中初始化两个NSObject实例 – Swift

请多多包涵。 我是新手编程和新的StackOverflow。 我希望我的问题能够给我一个进入编程界的热烈回应。 一个相信我的信任的人告诉我在StackOverflow上发布这封电子邮件给他。 我需要做什么才能让两个NSObject实例在同一个ViewController中工作? 我已经初始化了一个名为SideBar和RightSideBar的NSObject子类。 他们都从NSObject中提取。 菜单中的单元格由编程创build的TableViewController创build。 我跟随了一个以编程方式完成所有事情的教程,因为我不知道Storyboard更适合构build事物。 以下是代码库。 编辑:对不起长时间的啰嗦。 我不知道如何使这个更短,更完整 =========== ****请注意,SideBar子类是左侧菜单。 RightSideBar类具有相同的初始化设置,并且是正确的菜单。 如果可能的话,我希望能够使它们在同一个ViewController的同一个实例中出现在相同的ViewController中。 这是左边的TableViewController: import UIKit //this protocol of the sidebar delegate manages the selection of the item in the row. protocol SidebarTableViewControllerDelegate { func sidebarControlDidSelectRow(indexPath: NSIndexPath) } class SidebarTableViewController: UITableViewController { //setting up the delegate and array of menu items. var […]

iPhone定位pipe理:什么是最有效的方法?

我需要开发一个iPad应用程序,它应该pipe理两种方向模式(横向和纵向)。 根据官方的Apple iOS文档 ,有两种方法可以进行。 第一个是在收到旋转事件时调整视图元素。 主要优点是我们只有一个ViewController – 第二个是为每个方向显示一个特定的ViewController。 所以我们有2个ViewController。 第二种方法似乎很好,但是恐怕会需要ViewController的数量。 更重要的是,ViewControllers中的“数据同步逻辑”必须被复制(或从ViewController中分离出来)才能在两个方向上使用。 我需要开发的应用程序将包含许多“完整的自定义元素”和许多ViewController。 如果任何人有build议或经验的反馈,将非常感激;) 谢谢阅读 !

在应用程序中处理不同的视图控制器:创build自定义内容视图控制器

在应用程序开发期间,我有问题来支持正确的应用程序体系 这是我正在开发的应用程序。 特别是,我需要支持如下的架构。 如您所见, MainViewController是应用程序的主控制器,并且必须在应用程序生命周期内pipe理不同的控制器。 在这种情况下, MainController是pipe理应用程序不同状态(如LOGIN_AREA,HOME_AREA等)的一种集中控制器(其视图的子视图始终在前面,将其视为菜单视图)。 在下面我写了一些考虑来实现上述架构。 由于MainViewController需要总是在其他视图( UIviewControllerX的视图)之前显示其视图的子视图,所以我将其设置为rootViewController 。 由于MainViewController必须被其他控制器(例如UIViewControllers1 )访问,所以它们需要有一个(弱)引用。 MainViewController有一个公共方法来pipe理应用程序状态。 它存储当前的控制器,并将其视图添加到选定的控制器视图作为其子视图。 例如: – (void)manageController { if(currentState == LOGIN_AREA) { self.currentController = [[[LoginViewController alloc] init] autorelease]; } // other stuff here… [self.view addSubView:self.currentController.view]; } 上述模式似乎工作,但我不敢肯定,如果这可能是正确的。 另外,如果一个UIViewController (例如UIViewController1 )必须是一个UINavigationController ,情况会变得复杂。 我已阅读iOS的视图控制器编程指南 。 特别是,我发现有趣的部分创build自定义内容视图控制器,但我还没有find任何示例来创build一个自定义的。 所以,我的问题是以下。 你可以给我build议,以实现以下架构? 或者你可以给我一些技巧来开发一个自定义的内容视图控制器? 先谢谢你。

在SpriteKit Game的主ViewController中调用presentViewController

我正在构build“spritekit”游戏,我需要提出另一个viewController比主viewController 。 我试图与代表和与通知中心执行此发送请求呈现新的视图控制器。 这两种方法都正确地从“SkScene”(tuGameOver)主viewController (tuViewController)内调用此函数。 重点是要正确呈现FacebookLikeViewDemoViewController -(void)showShareScreen{ NSLog(@"VIEWCONTROLER RECEIVED"); FacebookLikeViewDemoViewController *helpVC = [[FacebookLikeViewDemoViewController alloc]initWithNibName:@"FacebookLikeViewDemoViewController" bundle:nil]; [self presentViewController: helpVC animated: YES completion:nil]; } 当这个函数被执行时,我得到了NSlog ,之后terminating with uncaught exception of type NSException SIGABRT错误。 我也试着修改这个函数来: -(void)showShareScreen{ NSLog(@"VIEWCONTROLER RECEIVED"); UIViewController *vc = [[UIApplication sharedApplication] keyWindow].rootViewController; FacebookLikeViewDemoViewController *helpVC = [[FacebookLikeViewDemoViewController alloc]init]; [vc presentViewController: helpVC animated: YES completion:nil]; } 与此同时,我没有得到崩溃,并出现一些东西,但这是空白的黑屏。 FacebookLikeViewDemoViewController是典型的viewController类,固定在故事板中查看Controller。 […]

防止在uinavigationcontroller安装程序中对popViewControllerAnimated进行错误的访问崩溃

所以,在低内存下,我的根视图被卸载。 这是预期的和占的。 但是,如何处理需要popup的模式/推式视图控制器,因为它们引用了主navigationController? 我有一个自定义完成button在推视图控制器,它调用[self.navigationController popViewControllerAnimated:YES]。 如果根视图已被卸载,则会导致访问错误。 有一个更好的方法吗? 我的设置是AppDelegate有一个NavigationController这个NavigationController有一个视图控制器MainViewController //MainViewController.m – (IBAction)showAnotherController:(id)sender { AnotherViewController * anotherViewController; anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil]; [self.navigationController pushViewController:anotherViewController animated:YES]; [anotherViewController release]; } //…Here I can simulate a memory warning to force unloading of MainViewController's view //in AnotherViewController.m, called from a custom toolbar item – (IBAction)done:(id)sender { [self.navigationController popViewControllerAnimated:YES]; // bad […]

如何完成两个UIViews之间的“90%幻灯片”

我有一个特定的场景,我试图效仿,对于Cocoa Touch来说是相当新的,我不确定完成它的最佳方式。 请原谅我缺乏的战术知识 希望有一些清楚的说明会有所帮助。 我想仿效的是: 我正在看的应用程序(尤其是) Beat 。 下面是他们的UIViews的一个例子 – 特别是,注意底部设置的齿轮图标。 当这个齿轮被触摸或刷新时,会发生两个主要的UIView变化: 原来的UIView在屏幕上滑动了90%左右( 关键在于它不会一直向上滑动)。 一个新的UIView滑了起来,以填补这个新腾出的90%的空间。 这是我想要完成的基本function。 实现想法#1:单个UIViewController瓦特/多个UIViews 起初,我认为有一个UIViewControllerpipe理“主”和“设置”的意见。 在这种情况下,以适当的方式转换这些观点将是相当简单的事情。 这就是说,这对我来说似乎有点混乱。 根据我的两套function的强大程度,这是一个重载单个UIViewController的方法。 你可能会告诉我,这没关系,但蝙蝠,似乎太多了。 实现想法#2:自定义容器ViewController中的多个UIViewController 这是我目前正在走下的路线。 它将两个离散的function集合分离成单独的UIViewController(包含在Container ViewController中),并通过以下方式在两者之间转换: – (void)flipFromViewController:(UIViewController *)fromController toViewController:(UIViewController *)toController { CGFloat width = self.view.frame.size.width; CGFloat height = self.view.frame.size.height; fromController.view.frame = CGRectMake(0.0f, 0.0f, width, height); toController.view.frame = CGRectMake(0.0f, height, width, height); [self addChildViewController:toController]; [fromController […]

解释想要:UIViewController和UIView之间传递数据的概念

我浏览了很多“视图控制器之间传递数据”的问题。 但是我似乎无法理解传递数据的概念。 为什么将用户或系统生成的值从一个视图转移到另一个视图是一件麻烦的事情? 我是Objective-C的新手,但是我之前做过一些编程,所以我并不熟悉所有的术语。 我已经阅读了关于委托,协议,单例和segue的。 我试图尝试使用示例文件,但无法回收代码以满足我的需求,也不了解传递数据所需的stream程。 我想学习的是如何将所有生成的数据从1个UIViewController传递给多个UIViews。 我生成的所有值都需要能够即时更新,无需视图切换即可访问,也不需要按下button来更新/传递数据槽。 有人可以请解释一次,如何在不同的头文件和UIViews之间传递数据。 这使我疯狂,我只想让数据在那里,随时随地都可以访问。 这就是我想创造的,我有三个滑块,每个代表一个轴。 用户可以基于滑块使用的值创build两个关键帧。 这些值被保存(在UIViewControler.m中),并在屏幕上创build一个可视化关键帧(UIImage)。 关键帧1和关键帧2,这些关键帧将用作UIBezierCurve的CGPoint。 这就是说,我把一个UIView拖入我的UIViewController,并将UIView链接到我的“BezierGraphView.h”。 现在我需要将这些关键帧点传递给BezierGraphView。 我将如何做到这一点?

iOS – 使用UIPageContol加载和切换页面

我想使用UIPageControl在不同的视图控制器之间导航。 我有2个视图控制器和另一个主视图控制器包含UIPageControl 。 要导航的两个视图控制器已经作为子视图添加到主视图控制器。 当我正在启动应用程序时,我看到一个空白屏幕。 我用pageControl.currentPage = 0但我无法理解为什么我无法看到的意见。 请注意,我不想在我的应用程序中使用UIScrollView 。 编辑 – 我已经按照这个教程http://www.wannabegeek.com/?p=168 但它使用滚动视图。 我不想使用滚动视图,因为它正在使用UIWebView和我在不同视图控制器中使用的CorePlot创build一些问题。 我在不使用滚动视图的情况下寻求如何修改本教程的指导。 谢谢!

如何仅在用户默认密钥不存在时才显示login屏幕?

我正在尝试开发一个应用程序(仍然在学习),在那里我提供一个login屏幕,它需要一个用户名和密码 – 然后去一个Web服务进行身份validation并返回一个访问令牌。 访问令牌然后存储在userdefaults中,然后呈现一个新的视图控制器,该视图控制器可以访问受保护的数据。 我的问题是,当我closures我的应用程序 – 强制closures,然后再次要求login。 因为我的login视图控制器是初始视图控制器,然后我添加了一个检查,以查看访问令牌是否存在userdefaults中,并呈现新的视图控制器,它允许访问受保护的数据。 现在我的问题是,login屏幕总是在我的安全视图控制器后面打开,所以当从头开始应用程序时,您可以简要地看到login视图控制器,然后呈现受保护的视图控制器。 我将如何理想地处理这个,是这样的情况下,初始视图控制器设置为安全的视图控制器时,用户默认键存在 – 但这样做,我将如何处理注销function,因为我需要'stream行'到根视图控制器和清除用户默认值,但由于login屏幕不是在视图层次结构,那么我不能回到这个? 如果在注销时出现了login视图控制器,那么受保护的视图控制器仍然存在于login视图控制器下。 对不起,如果这是一个有点长啰,但只是想描述我遇到的问题。 谢谢