iOS dev:为什么scrollView为null

时间:2013-09-07 17:07:50

标签: iphone ios

我正在开发一个电子酒吧应用程序,并希望使用UIScrollView来显示多个页面。但是我发现通过查看到断点来调用viewDidLoad后,scrollView变量为null。代码:

#import <UIKit/UIKit.h>

@interface PagedScrollViewController : UIViewController <UIScrollViewDelegate>

@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIPageControl *pageControl;

@end

.m文件:

@implementation PagedScrollViewController

@synthesize scrollView = _scrollView;
@synthesize pageControl = _pageControl;

@synthesize pageImages = _pageImages;
@synthesize pageViews = _pageViews;

- (void)viewDidLoad {
     NSLog(@"paged view did load");

    [super viewDidLoad];

    self.title = @"Paged";

我发现在viewDidload之后scrollView仍然设置为null。 在上一个视图中,我使用下面的代码切换到上面的视图:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];
    NSLog(@"touch pressed");
    PagedScrollViewController *indexView = [[PagedScrollViewController alloc] init];
    [self.navigationController pushViewController:indexView animated:YES];

    NSLog(@"touch pressed 2");
}

2 个答案:

答案 0 :(得分:2)

IB的IBOutlets几乎总是由IB(Interface Builder)中的断开链接引起。在IB中打开VC,选择“连接检查器”,然后单击滚动视图。查看它是否已连接到VC中的IBOutlet。如果没有,控制 - 从滚动视图拖动到“文件所有者”并选择“scrollView”插座进行连接。

答案 1 :(得分:1)

首先,确保您的.ib文件滚动视图插座已连接到.h文件中的scrollView

还有一些关于您的代码的评论:

  1. 制作IBOutlet媒体资源weak而不是strong。如果你不这样做,你可能会遇到问题。

  2. 如果您使用最新版本的Xcode并定位到iO 5 +,则不需要@synthesize语句。

  3. 编辑:

    查看您的PagedScrollViewController.xib文件,检查scrollView的引用插座是否已连接。请参阅界面生成器中的操作截图 - 如所示的view插座。 @ duncan-c给出了如何连接它的很好的描述。

    enter image description here