Tag: uiviewcontroller

从每个视图控制器访问一个NSArray

我有一个很大的NSArray ,我必须在几个视图控制器中使用。 我从服务器获取数据,当用户打开新视图时,我不想总是下载它。 那么我怎样才能把它定义为一个“全局variables”呢? 我可以用segues来做,但是没有他们就不行。 我试图在DestinationViewController声明一个名为dataToDestinationView的数组,然后将其导入到self.arrayToExport所在的视图中,并添加上面的行,但不起作用。 我错过了什么? DestinationViewController *dataToNew = [DestinationViewController alloc]init]; dataToNew.dataToDestinationView = self.arrayToExport; 更新与我在AppDelegate的尝试: AppDelegate.h @property (nonatomic, strong) PNChannel *myChannel; AppDelegate.m [PubNub requestHistoryForChannel:self.myChannel from:nil to:nil limit:100 reverseHistory:NO withCompletionBlock:^(NSArray *contentArray, PNChannel *channel, PNDate *fromDate, PNDate *toDate, PNError *error) { + (NSArray *)mySharedArray { static NSArray *sharedArray = nil; if (sharedArray) return sharedArray; sharedArray = […]

我在dynamic更新另一个控制器中的UILabel时遇到了麻烦。 它需要对应于在objective-c中选中的checkbox

在购物商店的应用程序工作。 过去的一周半,我一直在围绕着如何正确地做到这一点。 问题在于UILabel需要dynamic更新与选中checkbox对应的文本。 当点击应用button时,还需要知道是否应用select,或者如果客户决定改变主意而不点击应用,则返回先前的select。 这是我遇到的问题。 我把3个控制器称为图像1,图像2和图像3。 我的模特是一个独立的class级,当我们希望细化一系列服装项目结果时,我会传递来回的副本以保持用户的select。 例如,用户点击图像1中的细化button 他们被拿到形象2,他们决定他们想要改善结果 然后他们被拍到他们做select的图像3页 哪里出现问题: 简而言之,在图片3中,客户做出select并且完成点击,然后他们被接回到图像2,其中他们的select被显示在由select的细化选项(例如性别)下方的UILabel中的逗号分隔的string中。 如果他们的select正确,他们可以点击应用,完成并显示如图1所示。细化button中还会显示一个勾号,以使客户意识到精炼是有效的。 现在让我们说一个select已经在下面的图像,客户回到图像3来修改select。 假设他没有选中“微型网站”。 应该发生的是,当他回到图像2时,应该更新提炼选项下面的列表。 这工作正常,但我实际上更新当点击应用button时更新的属性。 所以如果客户决定他们不想再细化,而不是点击应用,而后退button,而不是他们的形象1,那么我需要在属性中更新原始selectstring。 事情是这样的,只要在图像3中进行select,就会更新这个属性。所以当客户返回到图像2时,因为我们没有选中“microsites”,只有“men”会显示在refine by选项下面的string中。 我已经尝试创build一个临时属性来保存以前的select,但事情只是真的让这一切来回麻烦。 更多信息: 我使用prepareForSegue方法和委托/协议在控制器之间来回传递模型类。 当图像3中的完成button被点击时,图像2就知道了。 这是我通过模型的地方。 图像1知道何时点击图像2中的应用button,并且这是我将模型传递过来的地方。 为了传递模型从图像1到2,然后2到3我使用prepareForSegue方法。 图片1: 图2: 图3: 你会怎么做? 我觉得我把所有的模型都转换成了自己的类,从而开创了一个好的开始。 这使事情变得简单了,但UILabel的另一个问题阻碍了我。 更新: – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[[sender titleLabel] text] isEqualToString:@"Gender"]) { VAGRefineGenderViewController *vc = [segue destinationViewController]; [vc setDelegate:self]; [vc setRefineModel:[self refineModel]]; […]

ios6 autorotation portraitupsidedown到肖像

请不要build议我在1个版本的ios 4.3-6.0上进行轮换是个不错的主意,因为我多次告诉过,并没有听我说。 在项目设置中,我已经设置了所有的接口方向来支持,只是可以肯定的。 现在我正在用iphone4testingios6。 从应用程序委托开始,它是一个代码,如下所示: mainController = [[MainViewController alloc] initWithNibName:nil bundle:nil]; navigationController=[[RotatingNavigationController alloc] initWithRootViewController:mainController]; navigationController.navigationBar.hidden =true; // ios: 4 and 5 //[window addSubview:navigationController.view]; //ios6: window.rootViewController = navigationController; [window makeKeyAndVisible]; 所以我做了2个自定义的类,在自动旋转的情况下推荐它们,并为他们解决了这个问题。 RotatingNavigationController是一个自定义的UINavigationController有一些难看的代码,但是我从这个论坛收集了这个部分,所以应该允许它发布它: @implementation RotatingNavigationController – (id)init { self = [super init]; if (self) { self.view.autoresizesSubviews = YES; [self.view setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)]; } return self; } // […]

在我的iPhone应用程序中是否有任何开源产品可以让我像Instagram一样分享?

我注意到,像Instagram和picplz这样的应用程序有一个相当标准的屏幕,可以让用户在脸书,推特,flickr,posterous等分享他们的照片。有没有人知道如果有一个开源产品,我可以把我的iPhone应用程序那会让我做同样的事情吗? 具体来说,如果UIViewController的某个子类在一个地方拥有所有这些共享选项,那将会很好。 谢谢你的帮助!

更改从shouldAutorotateToInterfaceOrientation返回:在运行时

我正在使用shouldAutorotateToInterfaceOrientation:对所有方向做出回答YES。 在运行时,在less数情况下,我只能将画面的返回值更改为YES。 但是,如果我改变这种返回types,并且我的设备不是在物理上转动,我的界面方向不会改变。 如何强制uiView检查shouldAutorotateToInterfaceOrientation:并旋转视图,而不需要UIdevice旋转通知。 非常感谢。

单击UIBarbutton时删除TabBar控制器

在我的应用程序中,首先我有一些login视图控制器,login后button动作移动到Tabbar控制器与四个选项卡。 我的问题是我需要退出该tabbar控制器,当我点击barbutton,需要来的loginViewController.please有人帮我在这个。其实我已经尝试了一些方法,但我dint得到的。 感谢提前解决问题的宝贵scheme。

在呈现模态时,“不鼓励在分离的视图控制器上呈现视图控制器”消息

我有一个导航控制器和根视图。 然后在那个根视图中,我推了一个视图,我必须点击以观察内容,如果login,如果没有logging它,它会打开一个模式视图控制器与下面的代码。 var vc = self.storyboard?.instantiateViewControllerWithIdentifier("LoginViewController") as! LoginViewController self.tabBarController!.presentViewController(vc, animated: true, completion: nil) 在viewdidload()我有一个nsnotification,以便我可以得到通知时,从login模式用户loggedinback NSNotificationCenter.defaultCenter().addObserver(self, selector: ("didDismissSecondViewController:"), name: "SecondViewControllerDismissed", object: nil) 在所有的工作之后,我在Login Controller中写下了下面的代码 self.dismissViewControllerAnimated(true, completion: {NSNotificationCenter.defaultCenter().postNotificationName("SecondViewControllerDismissed", object: nil, userInfo: nil)}); 所以在我的第一个视图控制器中,我写了下面的代码 func didDismissSecondViewController(sender: AnyObject) { NSLog("Called ns notifications") dispatch_async(dispatch_get_main_queue(),{ let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) if Reachability.isConnectedToNetwork() == true { let storyboard : […]

在SWIFT中的不同视图之间切换

我在堆栈溢出社区中阅读了许多关于在不同的ViewController之间切换的问题/答案,但我无法find正确的答案来解决我的具体问题。 我使用NavigationViewController来“连接”我所有不同的viewControllers(ViewController / TableViewController / CollectionViewController) 我有一些不依赖于ViewController类的类。 例如来计算我的“计算”类中的任何东西。 我正在寻找一个简单的解决scheme,以切换我所有的ViewControllers。 我想在我的“计算”类决定例如在我的导航视图控制器退后一步。 在我使用这个的那一刻: 在两个不同的ViewController之间切换的示例: let sb = UIStoryboard(name: "Main", bundle: nil) let vc = sb.instantiateViewControllerWithIdentifier("StartPage") as! StartPageView self.presentViewController(vc, animated: true, completion: nil) 问题:这个例子只适用于ViewController类,导航栏消失。 示例在我的NavigationViewController中退一步: self.navigationController?.popViewControllerAnimated(true) 问题:这个例子只适用于ViewController类。 编辑1: 我find了一个很好的解决scheme,用这部分代码调用我所有的viewControllers: let switchViewController = self.navigationController?.viewControllers[1] as! ScanTableView self.navigationController?.popToViewController(switchViewController, animated: true) 如何在非ViewController类中调用此代码?

更改所有UIViewControllers BackBarButtonItem?

我想在我的iOS应用程序的所有视图上更改BackBarButtonItem ,以便它们只显示没有文本的后退箭头。 唯一的方法是完成每个UIViewController并设置self.navigationItem.backBarButtonItem.title ? 看来我应该能够创build一个超类来定义backBarButtonItem.title的默认值,但我不知道从哪里开始。 感谢您的帮助。

NSInternalInconsistencyException – 无法在捆绑中加载NIB

我得到以下exception: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/57C8544B-05F6-445D-80A9-FAC9672F278B/MyApp.app> (loaded)' with name 'MyNibName'' 我尝试了在stackoverflow的类似的问题build议的解决scheme的数量,但仍然得到这个问题。 这个问题是与加载地址簿的特定xib文件。 这只发生在iPhone上,而不是在iPad和模拟器上。 我也尝试删除现有的xib文件,并创build一个新的,但没有解决。 With few attempts of testing, I found that the file works fine for certain number of attempts and then starts giving above error only on iPhone. 请帮忙。 提前致谢。