Tag: 故事板

用编程方式使用Storyboards开发iOS的速度?

作为一名iOS开发人员,哪种方法可以更快速地开发?

实例化ViewControllerWithIdentifier并传递数据

我在我的应用程序中使用Storyboard ,我想将数据从一个视图传递到另一个视图。 而不是使用segues我使用instantiateViewControllerWithIdentifier 。 在这种情况下,我从我的第一个TableViewController实例化到一个NavigationController有第二个TableViewController附加,因为我需要在第二个TableViewController导航。 现在我想从我的第一个TableviewController ,根据哪一行被点击数据传递到我的第二个TableviewController 。 在这种情况下newTopViewController将是我的NavigationController但我的问题是现在如何将数据从firstTableViewController传递到第二个secondTableviewController 。 – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *identifier = [NSString stringWithFormat:@"%@Top", [menuArray objectAtIndex:indexPath.row]]; UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; }

将故事板视图添加为以编程方式创build的视图的子视图

我已经创build了一个具有特定属性的特殊的UIView类,我这样做是以编程方式,因为它通常是空白的,但有时会包含其他视图。 我知道,如果我以编程方式创build一个UIView,我可以做一些像[specialView addSubview: aView]; 我的问题是,有一个UIView,我在故事板中创build,我需要将UIView作为子视图添加到我的特殊视图。 我已经连接它作为属性在我的ViewController,但是当我做同样的代码如上,没有任何反应。 思考?

模态segue需要2点击而不是一个

我的UITableView需要2次点击来显示所选单元格的细节页面:一个用于select,另一个用于显示详细视图。 我想要一个点击直接显示点击单元格的细节视图。 我在我的UITableViewManager.m中使用这个方法的模态segue: – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"showDetail"]) { NSIndexPath *indexPath = [playerList indexPathForSelectedRow]; TCPlayerStat *object = _objects[indexPath.row]; [[segue destinationViewController] setPlayerStat:object]; } } 我不能用push segue工作,因为我没有导航控制器(并且不太想)。 我查看过TableView属性检查器,但没有find任何相关的东西。 我select了select“单选”并选中“显示select”。 我不知道这是否可能,如果是,在哪里看.. 谢谢你的帮助。 编辑1:当我写这样的两个方法,它仍然无法正常工作(需要2次点击),我有一个新的警告日志: “警告:尝试在TCRootViewController上显示TCDetailViewController:0xa27b900:0xa24f050演示文稿正在进行中! – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self performSegueWithIdentifier:@"showDetail" sender:self]; } – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"showDetail"]) { […]

Xcode Storyboard中的“推断”和“自由forms”之间有什么区别?

我有一个自定义视图,需要在所有iPhone设备(4,4S,5,5S,6和6 Plus)上显示。 在创build自定义视图XIB时,我已经提到它是“推断”,但它不是为iPhone 6和iPhone 6 Plus设备resize。 我无法弄清楚这个问题。 我对“推断”和“自由forms”之间的实际差异感到困惑。 有人能解释一下这个区别吗?

dequeueReusableCellWithIdentifier返回nil使用故事板静态单元格

我有这么一个时间。 使用故事板,我创build了一个静态单元格的表视图控制器,其中包含一个UITextField允许用户input。 当用户完成时,我想要检索文本字段的内容。 这是我做的: 创build了名为SingleLineFieldTableViewCell的UITableViewCell的子类 添加了IBOutlet UITextField *textField; 到子类并将其声明为一个属性(非primefaces,保留)并合成它。 添加了IBOutlet SingleLineFieldTableViewCell *cellNamed; 到拥有的表视图控制器,并将其声明为属性(非primefaces,保留)并合成它。 在故事板中,我有一个静态单元格的表格视图控制器。 其中一个单元格是自定义单元格,它被声明为SingleLineFieldTableViewCell并拥有一个UITextField 。 它也被分配一个小区标识符。 我将表视图单元格和文本字段的引用连接到上面列出的相应IBOutlet。 当我运行时, dequeueReusableCellWithIdentifier返回nil 。 我认为,根据转换到故事板发行说明 ,使用Xcode 4和故事板dequeueReusableCellWithIdentifier ,“ dequeueReusableCellWithIdentifier:方法保证返回一个单元格(假定您已经定义了一个具有给定标识符的单元格)”。 奇怪的部分是,当我运行在Simulatior中,表格按预期出现(节,单元格大小等),除了我不能编辑自定义单元格。 我不知所措 任何帮助或想法? – 约翰

ios – 将一个UIButton连接到2个赛段

我有一个UIButton,我试图将它连接到两个赛段。 哪个segue被使用取决于许多条件。 例如,当UIButton(标题为“next”)被按下时, 如果(条件1)然后转到屏幕A,否则转到屏幕B. 我相信我的代码是正确的(我已经包括了它),但问题是,在故事板视图中,我可以连接一个button只有一个视图控制器使用segue。 我该如何解决 ? 这是我正在使用的代码 – -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([[segue identifier]isEqualToString:@"nextButtonID"]){ creditCardViewController *cvc = [segue destinationViewController]; } else if([[segue identifier]isEqualToString:@"next2ButtonID"]){ depositInfoViewController *divc = [segue destinationViewController]; } } -(IBAction)nextClicked{ if([accountType isEqualToString:@"patron"]){ [self performSegueWithIdentifier:@"nextButtonID" sender:self]; } else{ [self performSegueWithIdentifier:@"next2ButtonID" sender:self]; } }

使用AutoLayout与Storyboard(不带XIB)的UICollectionViewCell的宽度和高度可变

以下是使用AutoLayout,UICollectionView和UICollectionViewCell的应用程序中的一个devise问题,该问题根据AutoLayout约束及其内容(某些文本)自动调整宽度和高度。 这是一个UITableView列表,每个单元格都有自己的宽度和高度,根据其内容分别针对每一行进行计算。 它更像是在应用程序(或WhatsUp)中构build的iOS消息。 很显然,应用程序应该使用func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize 。 问题是,在该方法,应用程序无法调用func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell也dequeueReusableCellWithReuseIdentifier(identifier: String, forIndexPath indexPath: NSIndexPath!) -> AnyObject实例化单元格,填充特定的内容并计算其宽度和高度。 试图这样做会导致无限recursion调用或其他types的应用程序崩溃(至less在iOS 8.3中)。 解决这种情况的最接近的方法似乎是将单元格的定义复制到视图层次结构中,以使自动布局自动调整“单元格”(如单元格具有与父集合视图相同的宽度),所以应用程序可以configuration具有特定内容的单元格,计算其大小。 这肯定不是解决它的唯一方法,因为资源重复。 所有这一切都与设置UILabel.preferredMaxLayoutWidth到一些值应该是自动布局可控(非硬编码),可能取决于屏幕宽度和高度,或至less由自动布局约束定义设置,所以应用程序可以得到多行UILabel内在大小计算。 我不想从XIB文件中实例化单元格,因为Storyboards应该是当今的行业标准,而且我希望对代码有更less的干预。 编辑: 下面列出了不能运行的基本代码。 所以只有实例化variablescellProbe(未使用)崩溃的应用程序。 没有这个电话,应用程序运行顺利。 var onceToken: dispatch_once_t = 0 class ViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout { override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: […]

更新到Xcode 7.0.1和项目现在有问题

所以我上传了我的Xcode 6.1版本到iTunes Connect,这个应用程序被批准了。 现在我试图更新应用程序,我更新到Xcode 7.0.1和Xcode是给我的问题说明: (对于我使用故事板和Objective-C的应用程序) 警告:除非应用程序需要全屏,否则必须支持所有界面方向。 警告:除非应用程序需要全屏,否则必须提供启动故事板或xib。 – (NSUInteger)supportedInterfaceOrientations { return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); } iOS 9支持的新界面方向是什么?

如何使Facebook的应用程序login屏幕?

我怎样才能使用“电子邮件”和“密码”文本框的Facebook应用程序login屏幕? Facebook登入 对于iOS编程我真的很陌生,对不起,如果这是一个简单的问题。