0

所以我有一个带有 IBAction 的按钮,它通过它的 initWithNibName 方法指向另一个 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];
    }
}

但是当我运行我的应用程序时,我的滚动未启用,并且我没有导航控制器的导航栏。发生了什么?

4

3 回答 3

2

ScrollView在我称为我的内容视图中添加另一个视图。该做的

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];
}
于 2012-05-25T09:27:23.007 回答
1

您的初始化代码使用了错误的方法。

由于您使用的是 Storyboard,因此您的视图控制器正在从 nib 文件中取消归档。初始化控件的正确位置是在awakeFromNib方法中。

确保您已为滚动视图设置了 IBOutlet 属性并将其连接到情节提要中,然后:

- (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并将其添加为子视图,而不是在此初始化程序中。

于 2012-05-25T09:29:47.170 回答
1

从 中删除您ModeEmploiControllerxib,但保留其子项ViewScrollView

现在单击File's OwnerModeEmploiController从右侧面板中的身份检查器中放置。

现在右键单击File's Owner并连接viewtoViewscrollViewto的属性ScrollView

于 2012-05-25T09:12:51.217 回答