Xcode / iPhone:第一个基于Windows的应用程序-为什么TabBarController视图中没有显示任何内容

| 使用基于Windows的模板时,我需要记住一些东西吗?因为我不清楚为什么显示选项卡,但视图中什么都没有显示。 你能帮忙吗?因为我已经搜索了几个小时的以前的问题,但是我仍然没有找到任何可以解决此问题的方法。 AnotherMadeUpAppDelegate.h
#import <UIKit/UIKit.h>
#import \"AnotherMadeUpViewController.h\"

@interface AnotherMadeUpAppDelegate : NSObject <UIApplicationDelegate> {

}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end
AnotherMadeUpAppDelegate.m
#import \"AnotherMadeUpAppDelegate.h\"

@implementation AnotherMadeUpAppDelegate


@synthesize window=_window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UIViewController *vc1 = [[UIViewController alloc] init];
    UIViewController *vc2 = [[UIViewController alloc] init];
    AnotherMadeUpViewController *vc3 = [[AnotherMadeUpViewController alloc] init];

    UITabBarController *tbc = [[UITabBarController alloc] init];
    tbc.viewControllers = [NSArray arrayWithObjects:vc1, vc2, vc3, nil];
    [vc1 release];
    [vc2 release];
    [vc3 release];

    [self.window addSubview:tbc.view];
    [self.window makeKeyAndVisible];
    return YES;
}
...
@end
AnotherMadeUpViewController.h
#import <UIKit/UIKit.h>

@interface AnotherMadeUpViewController : UIViewController<UIScrollViewDelegate>
{

    IBOutlet UIPageControl *pageControl;
    IBOutlet UIScrollView *scroller;
    IBOutlet UILabel *label;
}

@property (nonatomic,retain)IBOutlet UIPageControl *pageControl;
@property (nonatomic,retain)IBOutlet UIScrollView *scroller;
@property (nonatomic,retain)IBOutlet UILabel *label;

-(IBAction)clickPageControl:(id)sender;

@end
AnotherMadeUpViewController.m
#import \"AnotherMadeUpViewController.h\"

@implementation AnotherMadeUpViewController
@synthesize pageControl,scroller,label;

-(IBAction)clickPageControl:(id)sender
{
    int page=pageControl.currentPage;
    CGRect frame=scroller.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    [scroller scrollRectToVisible:frame animated:YES];
}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    int page = scrollView.contentOffset.x/scrollView.frame.size.width;
    pageControl.currentPage=page;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)dealloc
{
    [super dealloc];
    [label release];
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn\'t have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren\'t in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    scroller.pagingEnabled=YES;
    CGFloat labelOriginX = label.frame.origin.x;
    CGFloat labelOriginY = label.frame.origin.y;
    CGFloat scrollWidth = 0;
    int pageNumber = 0;
    for (int i=0; i<9; i++)
    {
        CGRect rect = label.frame;
        rect.size.height = label.frame.size.height;
        rect.size.width = label.frame.size.width;
        rect.origin.x = labelOriginX + scrollWidth;
        rect.origin.y = labelOriginY;
        label.frame = rect;
        label.text = [NSString stringWithFormat:@\"%d\", pageNumber];
        label.textColor = [UIColor redColor];
        [scroller addSubview:label];
        pageNumber++;
        scrollWidth += scroller.frame.size.width;
    }
    scroller.delegate=self;
    scroller.directionalLockEnabled=YES;
    scroller.showsHorizontalScrollIndicator=NO;
    scroller.showsVerticalScrollIndicator=NO;
    pageControl.numberOfPages=9;
    pageControl.currentPage=0;
    scroller.contentSize=CGSizeMake(pageControl.numberOfPages*self.view.frame.size.width, self.view.frame.size.height);
    [self.view addSubview:scroller];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    [label release];
    self.label = nil;
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end
    
已邀请:
        剖析
viewDidLoad
scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];
您似乎在此处创建一个新的滚动视图实例,但已将其声明为出口。如果您没有插座,请卸下
IBOutlet
IBOutlet
标签。如果您确实有一个想要使用它,则删除上面的行。一种更简单的方法是
scroller = [[UIScrollView alloc] initWithFrame:self.view.bounds];
另一件事是您要创建10个标签,但不分配框架。要在不同页面中分别显示其中之一,
int pageNumber = 0;
for (int i = 0; i < 10; i++)
{
    UILabel *label = [[UILabel alloc] init];
    [label sizeToFit];
    label.center = CGPointMake (((2 * i + 1) * self.view.frame.size.width) / 2, self.view.frame.size.height / 2);
    label.text = [NSString stringWithFormat:@\"%d\", pageNumber];

    [scroller addSubview:label];
    [label release];

    pageNumber++;
}
然后将ѭ10设置为显示10页,
scroller.contentSize = CGSizeMake(10 * self.view.frame.size.width, self.view.frame.size.height);    
    
        问题是这条线
AnotherMadeUpViewController *vc3 = [[AnotherMadeUpViewController alloc] init];
您需要将其更改为
AnotherMadeUpViewController *vc3 = [[AnotherMadeUpViewController alloc] initWithNibName:@\"AnotherMadeUpViewController\" bundle:nil];
然后,您的.xib将加载并连接您的插座。 并且不要忘记将您的网点连接到IB中File \的所有者。     

要回复问题请先登录注册