Tag: uiviewcontroller

为视图控制器根视图设置外观代理

在使用UIAppearance时,是否可以只定位到视图控制器的根视图? 我想setBackgroundColor为我的应用程序委托的所有我的控制器,但只想定位视图控制器上的直接视图。 谢谢。 详细说,每个UIViewController子类都有自己的UIView对象,你可以通过它的视图属性来调用。 这就是你在故事板上放置像UITableView,UITabBar等东西的视图。 我想代理只适用于直接的看法,因为UIKit中的一切都是UIView的子类。 这样做的目的是集中控制我的视图控制器的外观。 发生在我身上的可能是我应该只使用UIViewController的子类,但是我想还有另外一个地方可以做我刚刚描述的内容。

执行由UITableViewCell调用的Segue

我有一些UIButtons在自定义表格视图单元格按下时,我希望他们调用宿主视图控制器中的细胞所在的表格视图。我现在正在做的是声明一个这样的行动: – (空隙)的动作; 在表视图所在的类中。然后我从这个单元格中调用这个动作: ViewController *viewController = [[ViewController alloc] init]; [viewController action]; 但是,当行动被称为它说,没有这样的赛格视图控制器,我知道是不正确的。 从视图控制器本身调用“行动”本身完美,只是不从单元格。 另外,这里是执行segue的代码: -(void)action { [self performSegueWithIdentifier:@"action" sender:self]; } 我怎样才能做这个工作? 任何build议表示赞赏。 更新 : 我只是试图设置一个委托在这个单元格上: 单元格的头文件:@class PostCellView; @protocol PostCellViewDelegate -(void)action; @end @interface PostCellView : UITableViewCell <UIAlertViewDelegate, UIGestureRecognizerDelegate> @property (weak, nonatomic) id <PostCellViewDelegate> delegate; 而在单元格的主文件中,我将这样的动作称为:[self.delegate action]; 并在主持表视图的视图的头我像这样导入单元格:#import“PostCellView.h” @interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, PostCellViewDelegate> 然后在该视图的主文件中,我有单元格操作: […]

UIViewController:extendedLayoutIncludesOpaqueBars和滚动视图偏移量

我的应用程序的视图层次结构非常简单:一个UINavigationController包含一个UITableViewController 。 导航控制器的导航栏是不透明的,导致在导航转换期间表格视图的一些奇怪的插入行为,如下所示: 为了解决这个问题,我在UITableViewController上设置了extendedLayoutIncludesOpaqueBars为true 。 这样做正确地扩展了导航栏下面的视图,但以我不太明白的方式更改了表视图的contentOffset的行为。 将此属性设置为true ,表视图的contentOffset的Y值报告它的偏移量应高于导航栏当前高度的偏移量(即滚动table view 1pt,则报告其y偏移量为-63pts)。 这让我觉得导航控制器自动pipe理滚动视图的contentInset ,就像它对半透明酒吧。 但是我看不到有任何证据表明scrollViewDidScroll()中的scroll view有内容插入。 即使在表格视图控制器上将automaticallyAdjustsScrollViewInsets设置为false ,内容偏移也是不正确的,所以看起来与插入无关。 Apple关于extendedLayoutIncludesOpaqueBars的文档没有提及滚动视图的内容偏移的行为。 更改表视图的contentInset不幸的是不能解决这个问题。 我试图改变表视图​​控制器的edgesForExtendedLayout属性强制它扩展而不影响滚动视图,但似乎这个属性是无力对不透明的酒吧。 是否有一些隐藏的行为与extendedLayoutIncludesOpaqueBars滚动视图的内容偏移量的extendedLayoutIncludesOpaqueBars ? 或者这可能是一个错误?

UIScrollView添加UIViewController作为子视图? 与UIPageControl

我目前正在处理我的应用程序,并希望有一个UIScrollView和UIPageControl,这将允许用户左右滑动屏幕到不同的视图控制器。 我有这个工作到目前为止,以便我可以左右滑动查看任何视图控制器,但是我发现,当我的一个UIViewControllers需要访问它委托没有任何反应,例如UITableViewDelegate。 这是我迄今在我的scrollViewController的代码 CGRect frame2; frame2.origin.x = self.scrollView.frame.size.width * 1; frame2.origin.y =30; frame2.size = self.scrollView.frame.size; myViewController *vc3 = [[myViewController alloc] initWithNibName:@"myViewController" bundle:nil]; vc3.view.frame = frame2; [self.scrollView addSubview:vc3.view]; self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * 2, self.scrollView.frame.size.height); 我不能做的一件事是发布[vc3发布]; 将它添加到scrollView后,应用程序将会崩溃。 任何帮助都会很棒,请告诉我是否这样做是错误的。 谢谢Aaron

为什么当我从一个视图控制器返回时,我的UITableView的格式完全错误?

我有一个自定义单元格的UITableView ,其中有几个标签,dynamic地决定单元格的高度。 当我点击一个单元格,并继续到一个新的视图控制器,返回所有格式的单元格是完全搞砸了,我不知道是什么原因造成的。 以下是单元格通常的样子: 我有一些基本的约束设置在他们身上。 顶部的标签被固定在顶部和左边缘,并且必须始终> 20。 其他标签与第一个标签的左侧alignment,在所有标签之间设置垂直间距。 中间标签对边距具有正确的间距约束,底部标签与第一个的基线alignment,并且在它们之间具有水平间距。 当我回到这个表格视图时,它看起来像这样: 我无法弄清楚是什么导致它的布局与我离开时不同。 如果我滚动它似乎“重置”他们回到他们应该是,但在初始加载他们真的搞砸了。 如果需要的话,我可以附加这个项目,但在Storyboard之外并没有太多的东西。 cellForRowAtIndexPath: override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as CustomTableViewCell let object = objects[indexPath.row] cell.title1.text = object.name cell.title2.text = object.color cell.title3.text = object.roar return cell } 示例项目: http : //cl.ly/040L2z0q0V2d

UITableView:popViewController并保持行索引到父控制器?

我有以下configuration: 一个ViewController parentController,它包含一个带有自定义单元格的TableView parentTable ,以在每个单元格中显示2个标签。 包含TableView子表的 ViewController childController 。 当用户单击controllerParent的一个单元格时,会显示此视图,并且childTable的内容取决于所选的parentController单元格。 我用这个方法: [self.navigationController pushViewController:controleurEnfant animated:YES]; 现在,当我点击childTable中的一个单元格时,我回到了以前的视图: [self.navigationController popViewControllerAnimated:YES]; 当然,我可以很容易地得到所选childTable行的索引。 但是我唯一不知道的是当我回来的时候如何让这个数据在parentController中使用呢? 谢谢你的帮助…

在iOS中pipe理和解除多个视图控制器

我是iPhone的新手程序员。 在开发我的第一个游戏/应用程序时,我为自己提出了一个问题(创build了一个问题)。 我研究了这一点,并认为我已经看到了答案,但我不明白如何使它们适用于我的应用程序。 我有一个有几个视图控制器的游戏:欢迎,播放,高分,首选项和关于。 我没有一个导航控制器或我知道的根控制器。 编辑 – 我现在有一个rootview控制器 – 我添加[self.window setRootViewController:viewController]; 到我的appDelegate.m文件 从欢迎屏幕/ viewcontroller我可以去播放视图控制器,关于视图控制器,高分视图控制器或prefs视图控制器。 我想让现在掌pipe的新控制器负责,这样我就可以closures欢迎视图控制器。 事实上,任何时候我去视图控制器,我想能够从内存中解雇任何其他视图控制器 – 特别是我刚刚来自。 我可以去大多数视图控制器的大多数视图控制器。 我使用这个去新的视图控制器: – (IBAction)playGameAction:(id)sender { FlipTestViewController *myViewController = [[FlipTestViewController alloc] initWithNibName:@"FlipTestViewController" bundle:nil]; [UIView beginAnimations:@"flipview" context:nil]; [UIView setAnimationDuration:1]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES]; [self.view addSubview:myViewController.view]; [UIView commitAnimations]; } 一旦我安全地在FlipTestViewController(播放控制器)中,我该怎么做让WeclomeViewController走? 我怎么告诉新的pipe制员,现在是负责人,其他人可以走了? 我甚至问一个有意义的问题吗? 回复时请用小字和具体的例子! 谢谢! 在rdelmar的build议下,我尝试添加一个调用来将RootvVewController更改为我的button代码 – 我用来调出新的viewController的代码: – […]

与故事板一起使用initWithNibName

下面是一个使用initWithNibName和单独的xib视图的例子: TerminalViewController *ctrl = [[TerminalViewController alloc] initWithNibName:@"ControllerView" bundle:[NSBundle mainBundle]]; ctrl.appDelegate = self; viewCtrl = ctrl; 不过,我需要实现它与故事板UI布局。 对于'initWithNibName'我怎么能指向我的故事板中的视图: 即: TerminalViewController *ctrl = [[TerminalViewController alloc] initWithNibName:@"STORYBOARD.ControllerView" bundle:[NSBundle mainBundle]]; ctrl.appDelegate = self; 任何帮助深表感谢。 谢谢,戴夫

如何将数据从AppDelegate传递给ViewController?

我正在使用Safari来浏览网页。 当我点击这个页面上的button后,我的Ipad将启动我的应用程序。 所以我实现了方法- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url在AppDelegate.m – (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 。 – (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ if (!url) { return NO; } NSString *URLString = [url absoluteString]; self.paramArray = [URLString componentsSeparatedByString:@"@"]; NSLog(@"%d",[self.paramArray count]); for (int i = 1; i < [self.paramArray count]; i++) { NSLog([self.paramArray objectAtIndex:i]); } return YES; } 我在网页上使用的url是myapp://@first_part@second_part@third_part 。 self.paramArray存储url的子串( […]

如何在swift中从下载委托更新一个gui(progressview)

我有一个DownloadSessionDelegate类来处理大文件的下载过程。 我想在进度视图中显示进度。 关于下载状态的信息在我的DownloadSessionDelegate类中。 现在我不知道如何更新我的课程进度。 如何做到这一点? class DownloadSessionDelegate : NSObject, NSURLSessionDelegate, NSURLSessionDownloadDelegate { var handlerQueue: [String : CompleteHandlerBlock]! … … … func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) { println("session \(session) download task \(downloadTask) wrote an additional \(bytesWritten) bytes (total \(totalBytesWritten) bytes) out of an expected \(totalBytesExpectedToWrite) bytes.") progressView.setProgress(0.5, animated: true); […]