UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle: nil];
MenuScreenViewController *controller = (MenuScreenViewController*)[mainStoryboard
instantiateViewControllerWithIdentifier: @"<Controller ID>"];
Run Code Online (Sandbox Code Playgroud)
如果我必须确保使用标识符实例化当前视图,我究竟在哪里编写此代码?这意味着如果我在这个类上编写任何代码,它必须在这个viewcontroller加载时出现?我也将如何使用它?我不想创建menuscreenviewcontroller的实例.这意味着我必须说自己,但我使用self.view,但这不起作用.
我的示例故事板中的这个文档大纲显示了我正在使用的内容.

我有一个自定义的容器视图控制器和两个通过嵌入segues连接的内容视图控制器.
这是故事板本身.

ZetaViewController必须创建一些编程视图(当然在ZetaView中).我注意到当我将这些以编程方式创建的视图居中时,它们似乎真的偏离了中心.
ZetViewController通过检查self.view.bounds.size.height和self.view.bounds.size.width以及做一些适当的算术来集中事物.
当我将调试日志记录以ZetaViewController,我注意到self.view.bounds.size.height和self.view.bounds.size.width不得不尺寸等于ContainerView(768 X 1004),并没有 ZetaView(728 X 637).IB中的Size Inspector确认了这些值.
我为ZetaView的tag属性创建了一个独特的值并记录下来.ZetaViewController.view 确实是ZetaView,因为标签值确认了它.
那么发生了什么?为什么在故事板和大小检查器中显示较小尺寸的ZetaView在运行时显示其属性中的错误值?
我们有一个使用iOS 6 sdk构建的应用程序(可在iOS 5上部署)使用故事板,它在iOS 5(仅)中崩溃并出现此错误:
[myApp] *由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'NIB数据无效.'
有问题的场景是UITableViewController的子类,它包含一个UITableView和一个添加的UITextView属性.
我不知道这有什么无效或为什么它在iOS 6中正常工作.
有任何想法吗?
PS:我看到似乎是一个关于笔尖和创建自定义单元格的松散相似的问题建议关闭自动布局,但这个应用程序使用故事板,有静态单元格,并且自动布局已经关闭.
我只想(现在)在视图控制器的实例化中获取子视图的尺寸.
[这是一个简单的案例,我可以找到前一个问题.我试图弄清楚为什么故事板中的场景的子视图不像我期望的那样表现,也就是说:像XIB一样 - 我只想在实际绘制到屏幕之前获取子视图的尺寸]
为了将问题压缩到一个新的,干净的项目,我这样做:
MainStoryboard_iPad.storyboard(并将其背景更改为绿色以使其更容易看到 - 除了缩小尺寸之外,这是我从默认的UIView中拖动到场景中的唯一更改)ViewController.h导航器中的文件,将其放在Storyboard框架下面的自己的框架中,并在@interface指令下面插入一对括号ViewController.h并告诉它命名插座firstViewFirstSubView所以我们现在有ViewController.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
IBOutlet UIView *firstViewFirstSubView;
}
@end
Run Code Online (Sandbox Code Playgroud)
然后,我将此方法添加到ViewController.m:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"View Controller will appear. firstViewFirstSubView: %@ ", firstViewFirstSubView);
NSLog(@"subView's dimmensions: %f by %f at %f, %f", firstViewFirstSubView.frame.size.width,
firstViewFirstSubView.frame.size.height,
firstViewFirstSubView.frame.origin.x,
firstViewFirstSubView.frame.origin.y);
}
Run Code Online (Sandbox Code Playgroud)
此时,我希望能够获得UIView子视图的尺寸.但我得到全0:
2012-11-15 15:21:00.743 StoryboardViewBounds[11132:c07] View Controller will appear. firstViewFirstSubView: <UIView: 0x9379730; frame …Run Code Online (Sandbox Code Playgroud) 我正试图在看到动画后切换视图:
[UIView beginAnimations: @"Fade Out" context:nil];
[UIView setAnimationDelay:1.0];
[UIView setAnimationDuration:0.25];
splash.alpha = 0.0;
[UIView commitAnimations];
[self.view addSubview : view];
Run Code Online (Sandbox Code Playgroud)
在[self.view addSubview : view];我必须为视图添加一个名称,以便添加,所以我IBOutlet这样做:(在第一个视图控制器的.h文件中)
IBOutlet UIView *main;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试连接*main UIView到故事板上的视图时,它不会让我...非常感谢你们.
我有一个我在代码中完全定义的自定义单元格类型(子类化UITableViewCell),因为我无法使用xib文件使其工作.我可以将它添加到我的故事板中的表格中的单元格中,它显示得很好.但是,我想选择那个单元格触发一个segue到另一个屏幕.我可以在xcode中创建故事板中的segue,但是当我运行代码时它似乎没有实际工作(即没有任何反应,单元格被选中).我在同一个表中也有一个常规的标题/副标题单元格,它有一个单独的segue到不同的屏幕,并且一个工作正常(触摸该单元格按预期加载下一页),所以它似乎是一个特别的问题与定制单元格.我怀疑自定义单元格中的某些东西正在替换附加的segues.
那么如何确保我的自定义单元格可以使用故事板中定义的segue?
我有一个自定义静态UITableViewCell,我希望看起来与右侧细节单元格完全相同(UILabel在左侧,UILabel右侧),除了我希望右边UILabel是可编辑的UITextField.由于我想在故事板中的多个视图控制器中使用此单元,我决定最好的选择是创建一个MyEditableTableViewCell.xib文件,以及相应的*.h,m文件.我在MyEditableTableViewCell.h中有两个公共属性:
@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@property (weak, nonatomic) IBOutlet UITextField *detailTextField;
Run Code Online (Sandbox Code Playgroud)
这些IBOutlets的连接UILabel,并UITextField在文件的.xib.在我的故事板中,我有一个自定义UITableViewController子类,我将所需的类更改UITableViewCell为MyEditableTableViewCell.我的视图控制器中有一个属性:
@property (weak, nonatomic) IBOutlet MyEditableTableViewCell *myCell;
但是,当我运行应用程序时,单元格显示为一个空白单元格.对它运行一些检查,我看到[myCell isKindOfClass:[MyEditableTableViewCell class]]返回true.但是,UITextField似乎永远不会得到实例化.当我试图改变时myCell.detailTextField.text,没有任何反应,myCell.detailTextField似乎是零.
任何帮助,将不胜感激!
这是一个视图控制器,而不是模态显示,因此全屏.
在故事板中,"顶部布局指南"位于y:64.这就是状态栏height:20和导航栏时我所期望的height:44.
但是,当应用程序运行时,"顶部布局指南"是y:52.我不知道它是如何或为何失去12分.
我在我的应用程序中使用故事板作为我的启动屏幕,它包含一个带有5个UINavigationControllers的UITabBarController.故事板除了提供启动屏幕之外什么都不做.
一旦实际的视图控制器加载我得到这个:
你可以想象,让选择跳跃就像它一样有点刺耳.我不知道如何以编程方式更改选项卡,因为我无法将自定义类附加到启动屏幕中的任何内容.当然,我真的不在乎我是否真的这样做,如果有办法用不同颜色的图标来伪造它,那也很好,但是系统会将这个色调添加到选定的图标.
有没有办法在故事板启动屏幕上执行此操作?谢谢.
uistoryboard ×10
ios ×7
ios6 ×3
ios5 ×2
segue ×2
xcode ×2
3dtouch ×1
cgrect ×1
custom-cell ×1
iboutlet ×1
ios4 ×1
iphone ×1
objective-c ×1
peek-pop ×1
uitableview ×1
uiview ×1
xamarin ×1
xib ×1