所以我通过其initWithNibName方法将一个带有IBAction标题的按钮指向另一个ViewController。一切都嵌入在NavigationController中。
我还为这个ViewController创建了一个.xib,这是一个快速截图:
这是我的代码:
·H
@interface ModeEmploiController : UIViewController
{
IBOutlet UIScrollView *scrollView;
UITextView *vueOffres, *vueInfos, *vueGrilles;
}
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
的.m
@implementation ModeEmploiController
@synthesize scrollView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(320, 529)];
// Here I define vueOffres, vueInfos and vueGrilles and for each of them :
[self.view addSubview:vueGrilles/vueInfos/vueOffres];
}
}
但是当我运行我的应用程序时,我的滚动没有启用,我没有导航控制器的导航栏。发生了什么事?
答案 0 :(得分:2)
在名为我的内容视图的ScrollView
i中添加另一个视图。做
self.scrollView.contentSize = self.contentView.frame.size;
对于导航栏,您需要有一个uinavigation控制器,并使您的控制器成为导航控制器的rootviewcontroller。像这样
-(IBAction)MyButton:(id)sender
{
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
[self.navigationController presentModalViewController:navController animated:YES];
}
答案 1 :(得分:1)
从ModeEmploiController
移除xib
,但请保留其子View
和ScrollView
。
现在点击File's Owner
,然后在右侧面板中的身份检查器中添加ModeEmploiController
。
现在右键点击File's Owner
,将view
的属性与View
和scrollView
的{{1}}相关联。
答案 2 :(得分:1)
您的初始化代码使用了错误的方法。
由于您使用的是Storyboard,因此您的视图控制器正在从nib文件中取消归档。初始化控件的正确位置是awakeFromNib
方法。
确保您已为滚动视图设置了IBOutlet属性并将其连接到Storyboard中,然后:
- (void)awakeFromNib {
[self.scrollView setScrollEnabled:YES];
[self.scrollView setContentSize:CGSizeMake(320, 529)];
// Here I define vueOffres, vueInfos and vueGrilles and for each of them :
[self.view addSubview:vueGrilles/vueInfos/vueOffres];
}
这就留下了你要添加的子视图的问题。什么是vueGrilles/vueInfos/vueOffres
?您应该在viewDidLoad
方法中正确创建此视图,并将其添加为子视图,而不是在此初始化程序中。