我在 XCode 中诸如琐碎但基本的概念上遇到了麻烦。
我只想能够从头开始创建一个应用程序,并提供我的根视图控制器,并推送和弹出一些 VC 以供练习。
相信我,我看了很多帖子,但似乎没有一个能奏效。
所以我的步骤是,我创建了一个新的 xcode 项目,并创建了一个空应用程序。我想地狱,让我们在这里学习,而不是创建一个单一的视图应用程序。
我去了新文件,然后添加了一个 obj-c 类并用它创建了 XIB。我称它为 RootViewController。
所以这是我的应用程序委托 h 文件。
#import <UIKit/UIKit.h>
#import "RootViewController.h"
UINavigationController *navVC;
@interface VCTestAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (retain, nonatomic) UINavigationController *navVC;
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
@end
请注意,我正在创建自己的 UINavigationController,名为 navVC。
然后这是我的appledelegate m文件的开头和相关部分......
#import "VCTestAppDelegate.h"
@implementation VCTestAppDelegate
@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
@synthesize navVC;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController *VC1 = [[UIViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
navVC = [[UINavigationController alloc]initWithRootViewController:VC1];
[[self window] setRootViewController:navVC];
[self.window makeKeyAndVisible];
return YES;
}
我刚刚在那个根 VC 上创建了一个标签来验证它的显示。嗯,不。没有语法错误也没有崩溃,模拟器只是显示黑屏。我和我到底在做什么?然后,一旦我弄清楚这一点,我想练习推送和弹出视图控制器。
我不敢相信我无法弄清楚这一点。我最近发布了自己的应用程序,但使用了故事板。我现在想继续进行另一个项目,但我希望在不使用情节提要的情况下获得更扎实的基础知识。我不想只限制 iOS 5 及更高版本的用户。
顺便说一句,我什至尝试启动一个单视图应用程序并添加一个 VC,当我单击我的按钮时,它“应该”;推第二个VC。我知道它的语法,但是当我测试我正在弄乱的另一个应用程序时,它会进入按钮的 IBAction 块,但它不会推动那个 VC....
我尝试了 [self navigationController] pushview... 我什至只尝试了 [navVC pushview...] 没有任何效果。
我不明白我缺少什么以及人们如何手动制作应用程序(在故事板之前以编程方式)。
任何帮助将不胜感激。谢谢!