Tag: uiviewcontroller

更改UIViewController self.view框架

我试图显示一个viewController xib视图,其视图显示在一个固定的标题横幅(0,0,320,44),这是一个imageView添加在应用程序窗口。 这是因为我需要它在导航多个视图控制器时粘在屏幕上。 这是我正在做的项目的一个要求。 到目前为止我已经尝试过: resize的XIB视图到适当的帧大小(0,0,320,416),都用点符号和设置。 使用self.view.frame = CGRectMake(0,44,320,416)更改viewDidLoad中的框架; 但它不工作。 任何build议?

从底部加载导航视图控制器

我有四个ViewController,其中的ViewControllers加载使用UINavigationController 。 我能够切换到每个ViewController一个接一个。 事情是,因为我使用的是NavigationController,所有的ViewController都是从Left或者从Right加载的。 但我想从底部加载ViewController。 我知道我可以使用presentModalViewController从底部呈现ViewController。 但它不等同于导航控制器,因为从第四个ViewController,如果我按下一个button,我需要来第一个ViewController。 我怎样才能从NavigationController的底部呈现一个ViewController?

self.navigationController pushViewController不添加控制器到堆栈

我在一个名为vcA的viewController,我这样做: [self.navigationController pushViewController:vcB animated:YES]; 它的工作。 vcB被推送。 里面的vcB的viewDidAppear我这样做: NSArray *controllers = self.navigationController.viewControllers; 而控制器只包含一个对象,vcA !!!! (什么?) 为什么将vcB添加到控制器arrays? 有什么可以防止发生? 谢谢。

iPhone – 从另一个视图控制器调用function

我有一个叫做sendDataToMotor的函数。 这是在我的第一个视图控制器类。 我有另一个视图控制器称为SecondViewController。 我需要从Second View Controller.m类调用这个函数。 我试过声明属性: @property(nonatomic,assign)UIViewController* firstController; 在我的SecondViewController.h类中。 此外,我在我的SecondViewController.m类的viewDidLoad部分(我希望函数被调用的地方)写下了代码。 secondViewController = [[SecondViewController alloc] initWithNibName:@"secondViewController" bundle:nil]; secondViewController.firstController = self; [self.firstController performSelector:@selector(sendDataToMotor)]; 但是,由于未声明的标识符问题,我得到该代码(secondViewController)中的第一个单词的错误。 此外,我得到第二行(secondViewController.firstController = self)的错误,因为secondViewController有一个未知的名称types。 总之,我不在乎你是否使用上面的代码来回答我的问题:那只是我试图实现的,我在网上find的。 不过,我正在寻找从另一个View Controller调用函数的最简单的方法。

在cocos2d中添加UIViewController

我想在一个cocos2d项目中显示一个UIViewController,所以我在CCLayer类中做了这个: -(void)displayMainMenu { CGSize screenSize = [CCDirector sharedDirector].winSize; [CCMenuItemFont setFontName:@"Marker Felt"]; [CCMenuItemFont setFontSize:26]; CCMenuItemFont *openViewC = [CCMenuItemFont itemWithString:@"Open View" target:self selector:@selector(loadMyViewController)]; mainMenu = [CCMenu menuWithItems:openViewC, nil]; [self addChild:mainMenu z:0]; } -(void) loadMyViewController{ //Add the tableview when the transition is done myView = [[MyViewController alloc] init]; UIView *viewHost = hostView.view; [[[CCDirector sharedDirector] view] addSubview:viewHost]; } 然后在我的ViewController返回到我的CCLayer我这样做: […]

将UIViewController的视图添加到另一个UIViewController的视图是可取的吗?

将UIViewController的view添加到另一个UIViewController的view是可取的吗? 请解释为什么这是一个好的做法或一个不好的做法。

iOS从另一个类更新ViewController UILabel

我对发展很陌生,一直在抨击我的头,试图弄明白,我敢肯定,我错过了一些愚蠢的东西,但在尝试了各种不同的解决scheme之后,我仍然无法得到结果,寻找。 我想能够从另一个类更新一个ViewController的UILabel,这里是一个小的演示程序,我不能去工作,我有ViewController有两个UILabels,一个从viewDidDoad更新,另一个我想从ViewController调用的NewClass类中更新,我可以看到类被正确调用,因为控制台正在loggingNSLog条目,但我无法获得更新UILabel的语法。 提前致谢。 ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController { UILabel *_labelupdate01; UILabel *_labelupdate02; } @property (nonatomic, retain) IBOutlet UILabel *labelupdate01; @property (nonatomic, retain) IBOutlet UILabel *labelupdate02; @end ViewController.m #import "ViewController.h" #import "NewClass.h" @interface ViewController () @end @implementation ViewController @synthesize labelupdate01; @synthesize labelupdate02; – (void)viewDidLoad { [super viewDidLoad]; labelupdate01.text = @"Update from ViewController"; [NewClass […]

在iOS单一视图应用程序中,self.view.bounds设置的最早时间是什么时候?

我正在尝试添加一个覆盖整个屏幕的UITableView对象 UITableView *tabelView = [[UITableView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:tabelView]; 但是我意识到,即使将物理iPad 2旋转到横向模式, self.view.bounds也是在viewDidLoad和viewWillAppear {{0, 0}, {768, 1004}} 。 只有在viewDidAppear它终于{{0, 0}, {1024, 748}} self.view.bounds被设置为{{0, 0}, {1024, 748}}的最早时间是什么时候? 如果viewDidAppear是一个,那么我必须在那里创buildUITableView ,如果“启动图像”是一个静态的横向空白表,那么当viewDidAppear被调用时,屏幕将会闪烁白色屏幕,然后添加和看见表,所以看到一个白色的屏幕闪光。 那么self.view.bounds设置为{{0, 0}, {1024, 748}}的最早时间是什么时候? 看起来好像在viewDidAppear之前需要稍微做一点,这样就可以绘制空白表格(用灰色线条),并将其显示出来并无缝地显示来覆盖启动图像。 如果表格是使用self.view.bounds在viewDidLoad或viewWillAppear创build的,那么表格最终会self.view.bounds 768点宽度,并用于纵向模式。 更新:我只是试图添加启动图像,由于某种原因,即使UITableView添加在viewDidAppear ,“白屏的闪光”没有发生…我不知道为什么,但以前如果我使用CALayer和位图显示的内容,并没有使用任何视图或drawRect ,然后发生闪光…顺便说一下,我发现最早的一个是viewWillLayoutSubviews ,然后在viewDidLayoutSubviews ,这两个发生在viewDidAppear之前,和都显示self.view.bounds为{{0, 0}, {1024, 748}} 更新2:如果视图复杂且费时,该怎么办? 为了testing,我添加了一个usleep(100000); 在tableView:cellForRowAtIndexPath为每个单元睡0.1秒,并且“闪光”确实发生了…但细胞和表应该是重量轻和快速,但如果有其他types的视图是更多的时间耗费多less? 如果我将UITableView创build移动到viewWillLayoutSubviews ,那么显示内容仍然很慢,但至less没有“flash”。 然而,稍后当我旋转设备,它实际上再次调用viewWillLayoutSubviews并添加另一个表到主视图(具有正确的屏幕大小),所以viewWillLayoutSubviews将需要删除任何旧的表视图,如果有的话,或者只是调整旧一个而不是添加一个新的。

我怎样才能pipe理视图控制器无限推动到导航控制器堆栈? iOS版

我有一个由UINavigationController组成的应用程序,它从3个不同的选项卡中推送ViewControllers。 我预见到的麻烦是,目前的结构允许用户无休止地将VC添加到堆栈。 我有一个叫药品的标签,另一个叫病原体。 如果您深入了解药物,您可以查看其有效防治的病原体列表,并且用户可以select一种病原体以查看有关该病原体的更多信息。 这导致应用程序推动一个新的病原体VC。 现在,用户可以深入到病原体易感染的药物列表中,并select它,这在药物标签中导致新的VC。 等等等等… 每次有额外的1.5Mb添加到内存占用。 我怎样才能最好地pipe理这个?

从一个UIViewControllerpipe理多个UIViews

我对视图控制器感到困惑,并会喜欢一个直接的例子。 这是序言: 我有一个匹配.xib的UIViewController。 默认情况下,IB在“文档”窗口中给我一个单独的视图。 我可以通过告诉我的UIWindow addSubview:controller.view和bringSubviewToFront:controller.view 以下是问题: 我应该添加另一个视图到在IB的ViewController? 还是有一个更好的,程序化的方式? 我如何告诉ViewController在视图之间切换? 从ViewController向下,代码看起来像做什么? 我正在尝试的东西,但只是弄得一团糟,所以我想我会停下来问问…