我对 iOS 开发非常陌生,如果这里的专家能够帮助我解决我的问题,我将不胜感激。目前,我的应用程序非常基础,并没有做太多事情。在尝试将标签栏添加到我现有的视图之前,一切正常。我不确定我错过了什么,但是当我运行模拟时没有显示任何内容。我会尽力解释我的应用程序的结构,以便你们更好地理解问题。
应用程序中当前存在以下内容...
- FeedList:嵌入在 UINavigationController 中的 UITableViewController。
- FeedCell:为 FeedList 创建的 UITableViewCell。
- FeedItemDetail:一个 UIViewController,里面有一个 UIScrollView。通过点击 FeedList 中的单元格,用户将被带到此屏幕。
下面是 AppDelegate.h 和 AppDelegate.m 的代码。如果有人能够告诉我为什么我的模拟屏幕上没有显示任何内容,我将不胜感激。谢谢!
//AppDelegate.h
#import <UIKit/UIKit.h>
#import "FeedList.h"
@interface AppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
FeedList *feedList;
UITabBarController *tabBarController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) FeedList *feedList;
@property (nonatomic, retain) UITabBarController *tabBarController;
- (void)customizeAppearance;
@end
//AppDelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window, feedList, tabBarController;
// Entry point
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController = [[UITabBarController alloc] init];
feedList = [[FeedList alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:feedList];
tabBarController.viewControllers = [NSArray arrayWithObject:nav];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}
更新(问题已解决)
我意识到在添加线之后tabBarController.viewControllers = [NSArray arrayWithObject:nav];
事情开始变得混乱。检查 Apple 的文档后,原因是如果在运行时更改此属性的值,标签栏控制器会在安装新视图控制器之前删除所有旧视图控制器。因此,我们需要将新的标签栏控制器设置为根视图控制器。