Tag: viewdidload

init方法与viewDidLoadtypes方法

init方法中的代码types(对象分配,设置ui元素,networking调用等)与视图控制器的viewDidLoadtypes方法之间的区别的一般指导原则是什么?

如何在之后调用viewDidLoad;

好的。 如果你有两个viewController,并且你从第一个到第二个做一个模态Segue,那么你用[self dismissModalViewControllerAnimated:YES]来解雇它。 它似乎没有回忆viewDidLoad。 我有一个主页面(viewController),然后是一个选项页面的sorting,我希望主页面更新,当你改变一个选项。 当我刚刚做了两个模态段(前进一个,后退一个),但是这似乎是非结构化的,并可能导致大型项目中的混乱代码。 我听说过推塞格斯。 他们还好吗? 谢谢。 我感谢任何帮助:)。

ViewController出现两次转换

问题摘要 我的主VC – >第二个VC转换似乎运行两次。 但奇怪的是,第二个VC的viewDidLoad只运行一次。 这是我的项目中唯一存在这个问题的过渡。 我研究了这一点,发现加载两次的问题,但没有一个匹配我的过渡两次,但加载一次的情况。 常见问题,例如某人在故事板中添加了两个段落,不会出现在我的项目中: 在我的第一个/根视图控制器(称为mainVC)中,我以编程方式在viewDidLoad中添加边缘平移手势: let panLeftEdgeGesture_MainVC = UIScreenEdgePanGestureRecognizer(target: self, action: "panLeftEdge_toLifeList:") panLeftEdgeGesture_MainVC.edges = .Left view.addGestureRecognizer(panLeftEdgeGesture_MainVC) 当用户滑动这个平移手势时,它会触发一个函数来调用我的下一个VC的继续。 问题是,VC转换出现两次,然后一切正常。 没有什么打破或崩溃。 如果我点击我的自定义后退button,退回到mainVC只会出现一次。 对原因进行实验 这是一个奇怪的部分:为了理解什么是理解的,我插入了一些println代码,这里是控制台打印的内容: No matching prepareForSegue: So did nothing to prepare. LifeList_CollectionView viewDidLoad did run Pan segue from mainVC to Life Lists did run No matching prepareForSegue: So did nothing to prepare. […]

viewDidload方法再次调用导航控制器中的屏幕吗?

我正在使用导航控制器。 我已经推动两个viewcontroller导航堆栈。 当我从viewcontroller2使用导航栏的后退button回到viewcontroller1时 , viewcontroller1的 viewdidload方法再次被调用。但是我知道viewdidload在加载时只调用一次。 那为什么会这样呢? 请告诉我。 谢谢!!

instantiateViewControllerWithIdentifier似乎调用viewdidload

我正尝试将ViewController以编程方式推送到导航控制器中,然后使用我的故事板创build它。 这里是我的代码: + (void) pushViewController:(NSString *) identifier ForItems:(NSMutableArray *) items sender:(UIViewController *) sender { GenericViewController *viewController = (GenericViewController *)[sender.storyboard instantiateViewControllerWithIdentifier:identifier]; viewController.items = [[NSMutableArray alloc] init]; [viewController.items removeAllObjects]; [viewController.items addObject:[[NSMutableArray alloc] init]]; [viewController.items[0] addObjectsFromArray:items]; [sender.navigationController pushViewController:viewController animated:YES]; } 在GenericViewController viewDidLoad我正在使用我的items 。 由于一些断点,我已经看到, GenericViewController viewDidLoad后instantiateViewControllerWithIdentifier与items等于零。 我以为在pushViewController方法中调用MyViewController viewDidLoad 。 任何想法为什么viewDidLoad在instantiateViewControllerWithIdentifier期间被调用? —更新:— 在这里我的viewDidLoad – (void)viewDidLoad { for (MyItem *currentItem […]

以编程方式设置UITabBarItem标题?

我的应用程序基于标签栏体系结构。 为了有一个简单的国际化机制,我不写在XIB文件中的任何string。 viewdidload允许改变视图中string的程序。 当我的应用程序启动时,我可以看到4个选项卡。 但实际上只有第一个加载它的视图控制器。 其他人等待用户点击被加载。 标签标题可以使用[self setTitle:@“Mouhahaha”]; 在viewDidLoad中加载视图控制器。 如果我想保持我的国际化机制可用,我不会在我的XIB中设置tabbar项目的名称。 但是,在开始时,所有标签的视图控制器没有加载,我有一些标签的空白标题。 只有当用户点击选项卡时才会设置正确的标题。 我正在寻找一种方法来为每个tabbaritem设置这个标题programaticaly。 你有提示吗? 非常感谢。 kheraud

TableViewController的viewDidLoad不会触发

我一直在关注这个教程以获得一个“滑出式菜单”。 我添加了一个TableViewController,它将显示文章的列表。 出于某种原因, viewDidLoad不会触发。 在本教程中, SideViewController控制将显示哪个控制器,如果有一个标识符为“showPhoto”的segue ,它将加载一个特定的图像。 // Set the photo if it navigates to the PhotoView if ([segue.identifier isEqualToString:@"showPhoto"]) { PhotoViewController *photoController = (PhotoViewController*)segue.destinationViewController; NSString *photoFilename = [NSString stringWithFormat:@"%@_photo.jpg", [menuItems objectAtIndex:indexPath.row]]; photoController.photoFilename = photoFilename; } 我想为TableViewController重新创build相同的东西,并试图强制控制器的viewDidLoad在这里看到强制viewDidLoad在iOS上触发,但它仍然无法正常工作: if ([segue.identifier isEqualToString:@"showList"]) { TableViewController *tableController = (TableViewController*)segue.destinationViewController; [tableController view]; } TableViewController viewDidLoad: – (void)viewDidLoad { [super viewDidLoad]; […]

iPhone / iOS中的viewDidAppear,viewDidLoad之间的区别?

底线是,我一直在一个应用程序,似乎如果我把一个UIAlert在viewDidLoad ,它被调用两次(从UIImagePickerController的委托方法)。 如果我把它放在viewDidAppear ,它会被调用一次。 我查看了文档,但它只是让我困惑。

iOS – viewDidLoad在didFinishLaunchingWithOptions委托之前被调用?

我有一个应用程序正在工作,因为它应该。 但是,我在我的rootViewController的viewDidLoad方法的第一行放置了一个断点,在我的委托的didFinishLaunchingWithOptions的第一行放了另一个断点, 令我惊讶的是,应用程序在viewDidLoad方法中input,然后去了didFinishLaunchingWithOptions,然后再执行一次viewDidLoad方法。 到底是怎么回事? 我认为这种行为是完全错误的。 先谢谢你! #编辑 这里是我的iPad的代表didFinishLaunchingWithOptions方法: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UIApplication sharedApplication] setStatusBarHidden:NO]; UtilXML *utilXML = [[UtilXML alloc] init]; [utilXML startXMLCommunication]; int quantidadeDeComicsBaixadas = [utilXML quantidadaDeComicsBaixadas]; main_iPad *mainiPad = [[main_iPad alloc] init]; mainiPad.quantidadeDeComicsBaixadas = quantidadeDeComicsBaixadas; mainiPad.navigationItem.title = @"TitleFirstScreen"; UIBarButtonItem *botaoSobre = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:mainiPad action:@selector(goToAboutView)]; mainiPad.navigationItem.rightBarButtonItem = botaoSobre; navController = […]

Autolayout完成时是否会触发iOS方法?

我有一个iOS应用程序,我需要知道什么时候一个新的视图是完全可见的屏幕上; 也就是说,Autolayout完成计算后,视图已经完成绘制。 在视图完全可见之前,ViewDidAppear似乎已经开火了。 如果我closuresAutolayout,时间似乎与人类感知一致,但我需要在这个项目中使用Autolayout(所以这不是一个解决scheme…只是一个testing)。 Autolayout计算完成后有没有什么方法可以触发? 或者当视图是ACTUALLY可见时触发的另一种方法(因为ViewDidAppear不适用于此)? 谢谢!