Tag: uiviewcontroller

两个视图控制器的TouchesMoved方法

在我的应用程序中有两个视图控制器。 我在视图控制器中写了touchesmoved方法。 但即使我在模拟器上触摸第二个视图控制器,第一个VC触摸移动的方法被调用。 //对于VCOne -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"first view vc move method"); UIStoryboard *storyboard = self.storyboard; ThreadedView *secViewController = [storyboard instantiateViewControllerWithIdentifier:@"threaded"]; [self.view addSubview:secViewController.view]; [self viewDidUnload]; } 所以一旦上面的方法被调用,它将导航到第二个视图控制器“ViewDIDLoad”方法。 在这个文件中,我写了一个更多的触动移动的方法。 //对于VCTwo -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"second view vc move method"); } 现在,如果我触摸第二个视图控制器,第一个VC触摸方法被称为而不是第二个VC触摸方法。 有没有办法做到这一点? 我需要不同的触摸移动方法为不同的视图控制器。

在xib文件中定义的UIViewController不会在故事板中加载

我试图加载一个UIViewController的子类,其视图定义在一个XIB文件到故事板。 我们称之为NibViewController。 这种方法的重点是在应用程序的多个屏幕上重复使用相同的ViewController。 我知道可以在代码中手动执行,但我正在故事板中寻找解决scheme。 我已经尝试了像这样的其他主题的build议,但没有任何工作。 ViewController正确显示在模拟器中,但不在故事板中。 这里是代码: https : //github.com/srstanic/NibViewControllerInStoryboard这里是截图: 我错误地期望NibViewController的内容出现在故事​​板?

问题与传递适当的图像到tableviewcell

这是我的结构… struct ProductImage { let id : String let url : URL let isDefault : Bool } struct Product { let name : String let id : String var images = [ProductImage]() init(name : String, id: String) { self.name = name self.id = id } mutating func add(image: ProductImage) { images.append(image) } } 现在我有一个图像加载在collectionview上,点击一个button,我想把这个图像传递给tableviewcell 。 […]

为什么我不需要为自定义的UIViewController的根视图指定autoresizingMask?

在我的自定义视图控制器中,我重写loadView以编程方式设置我的视图层次结构。 为了支持自动旋转,我为层次结构中的所有视图的autoresizingMask属性分配了一个合适的值 – 除了根视图(我分配给self.view视图)之外。 尽pipe没有这个省略,调整自动旋转function是完美的(感觉非常好,终于可以这样说了)。 我已经在各种模拟器,以及我的iPhone和iPad设备上进行testing。 有谁知道这是为什么? 这种行为只是“运气”,还是由苹果某处正式logging? (注:我主要是出于好奇而问,请不要告诉我“去修复它,只是一行代码” – 我已经这么做了。)

设置一个tableviewcontroller与多个部分和button

我想知道如何开发具有多个部分的IOS表格视图控制器。 例如附件是DrawSomething帐户页面的屏幕截图。 他们有不同的标题,如帐户设置,密码,然后下面的一些button。 这将被设置为一个UITableViewController,然后为每个表格单元格的标题和自定义单元格设置图像背景,或者将这一设置使用多个不同的视图控制器都在一个主视图控制器? 除此之外,是否可以使用NIB来设置和devise呢,还是使用代码生成这个更容易? 我知道这是开发者的select和你的意见,但是在普通的实践中,如果可以在NIB中devise(这样)就更容易了。 虽然在NIB中devise表格视图布局似乎是不可能的…

dealloc不叫改变选项卡

假设有一个带有两个选项卡A和B的标签栏控制器,其中A是一个导航控制器。 当用户在A时,他可以推A1和A2,这两个都是视图控制器。 A2上的后退button,执行: [self.navigationController popViewControllerAnimated:YES]; 这正确地触发了A2上的dealloc方法。 如果用户在A2中,然后切换到标签B,我需要在A2上调用dealloc方法; 因此我在TabBarController中实现了以下方法: – (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { UINavigationController *nc = (UINavigationController*)tabBarController.selectedViewController; [nc popToRootViewControllerAnimated:YES]; return YES; } 但是在这个stream程中,A2的dealloc方法永远不会被调用! 它怎么可能从A2到A1的popup工作,而改变标签的视图控制器不会被释放? 感谢任何提示! 担

inheritance自定义类和UIViewController的委托方法(Objective C)

我有一个主控制器,实现自定义类的方法。 现在在主控制器中,我想在alert视图中添加一个表,为此我需要实现UITableView委托方法。 我想实现像下面的东西 点击Click Herebutton,会显示一个警报视图,其中包含一个显示所有项目的表格。 CustomController的定义如下 @interface CustomController : UIViewController 当下 在.h文件中 @interface mainController : CustomController<CustomDelegateMethod> 在.m文件中 @interface mainController() 需要 在.h文件中 @interface mainController : CustomController<CustomDelegateMethod> //我想将UIViewController<UITableViewDelegate, UITableViewDataSource>到上面的行。 MainController中的AlertView代码: UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"List of Items" message:nil delegate:self cancelButtonTitle:@"Back" otherButtonTitles:@"Add New Item", nil]; tableView = [([UITableView alloc])initWithFrame:CGRectZero style:UITableViewStyleGrouped]; tableView.delegate = self; tableView.dataSource = self; tableView.backgroundColor […]

UIview不会加载viewdidappear

我有一个tableview项目有一个视图,我在这个视图中做的一切都是由“viewdidappear”方法控制的。 我添加了一个具有“lines.h”和“lines.m”文件的新UIview。 我用这个观点画出一些线条,作为神。 这个额外的视图位于滚动视图中,因为要长时间显示在iPhone屏幕上。 问题是viewdidappear不会重新加载uiview数据,它只能用于viewdidload。 我必须closures应用程序,并重新打开它来获取我的数据重新加载。

隐藏导航条?

1) 下面三行代码有什么区别? 2)为什么只有第三行代码工作,如果我回到一个viewController和前面的viewController已经设置navigationBar隐藏通过相同的方法[self.navigationController setNavigationBarHidden:NO]我的假设是,所有三条线一样的东西? self.navigationController.navigationBar.hidden = NO; [self.navigationController.navigationBar setHidden:NO]; [self.navigationController setNavigationBarHidden:NO]; 跟进: 为什么当我需要运行这个代码时: [self.navigationController.navigationBar setBackgroundImage:incorrectAnswerNavigationBarBackgroundImage forBarMetrics:UIBarMetricsDefault]; 它只能工作,正在设置背景图像,否则导航栏只是白色的。 如果我有这两行: [self.navigationController setNavigationBarHidden:NO]; self.navigationController.navigationBar.hidden = NO; 如果我省略self.navigationController.navigationBar.hidden = NO; 导航栏的空间会popup,但只是白色的,没有背景图片。 如果我有两条线,它的工作原理和背景图像。

如何正确replace视图控制器

我只是不明白我在做什么错了。 我有2个不相关的视图控制器,我通过拖动视图控制器到storyboard创build屏幕。 每个在故事板中都有它的名字标识符,我用它们的名字在它们之间进行replace。 问题是,在第一次更换后,我得到了几十条与现实无关的内存警告,因为我的内存消耗约为59M,并保持这样的状态。 当我从A切换到B并且回到A时,有时它会因“记忆湖”(59M !!)而崩溃。 我更换视图控制器时做错了什么? – (IBAction)goMatrix:(id)sender { UIViewController *mainV=[self.storyboard instantiateViewControllerWithIdentifier:@"MatrixView"]; mainV.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentViewController:mainV animated:YES completion:^(void) { scroller.delegate=nil; scroller=nil; [imagesBuffer removeAllObjects]; [scroller removeFromSuperview]; [stripView removeFromSuperview]; }]; } 我有一个滚动视图在他们两个与图像,我只是从超视图中删除,我只是不明白我还能做些什么来真正清理的东西了(虽然内存只是59M) 唯一一次我有很高的记忆力的时候,我换了他们,而它的134M只有1秒(!)