首先,让我给你一个提醒。我熟悉XCode(5)和Objective-C。
但是,请考虑我一个菜鸟,请帮助我。
我正在尝试构建应用。我需要在应用的所有视图中使用幻灯片菜单。
我使用SwRevealViewController类创建了一个虚拟项目。我也制作了两个滑出菜单。它有效。
我尝试在我正在构建的应用程序中使用相同的方法。
但是我的构建失败了,没有错误和一个警告,我在之前的虚拟项目中有这个警告....
我已经将SwRevealViewController.h导入AppDelegate.m和ViewController.m
我尝试使用TableViewController作为幻灯片菜单(这是空的,我还没有添加任何代码)。但构建失败了。
编辑: "错误如下..
" @synthesize' weak'属性仅允许在ARC或GC模式"
我在我的项目中使用Core Data。我必须在我的应用程序中广泛使用webservice。所以我禁用了ARC。 "
我也尝试用其他视图替换表,但结果相同。现在我被卡住了。
我的代码知道了一些东西,但我找不到它。
我包括AppDelegate.m和ViewController.m的代码。
请检查并告诉我有什么问题。我在这里不知所措。
编辑: "由于Stack Overflow限制,我无法上传图片。所以我上传了一个错误的屏幕截图。这是网址。
http://tinypic.com/r/162vli/8"
感谢您的帮助。
AppDelegate.h
// AppDelegate.h
// IndianBloodBank
//
// Created by Roshith Balendran on 8/5/14.
// Copyright (c) 2014 Olympus. All rights reserved.
//
#import <UIKit/UIKit.h>
@class SWRevealViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *UINV;
@property (strong, nonatomic) SWRevealViewController *splitMenu;
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
@end
AppDelegate.m
//
// AppDelegate.m
// IndianBloodBank
//
// Created by Roshith Balendran on 8/5/14.
// Copyright (c) 2014 Olympus. All rights reserved.
//
#import "AppDelegate.h"
#import "SWRevealViewController.h"
#import "HomePageViewController.h"
#import "SlideOutMenuTableViewController.h"
#import "SearchViewController.h"
#import "AboutUsViewController.h"
#import "SponsorsViewController.h"
#import "HowToDonateViewController.h"
#import "EmergencyViewController.h"
@implementation AppDelegate
@synthesize splitMenu,window,UINV;
@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window = window;
HomePageViewController *HPVC = [[HomePageViewController alloc]init];
SlideOutMenuTableViewController *SOMTVC = SOMTVC = [[SlideOutMenuTableViewController alloc]init];
UINavigationController *frontNavigationController = [[UINavigationController alloc]initWithRootViewController:HPVC];
UINavigationController *rearNavigationController = [[UINavigationController alloc]initWithRootViewController:SOMTVC];
SWRevealViewController *revealController= [[SWRevealViewController alloc]initWithRearViewController:rearNavigationController frontViewController:frontNavigationController];
revealController.delegate=self;
revealController.rightViewController = SOMTVC;
self.splitMenu = revealController;
self.window.rootViewController = self.splitMenu;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
HomePageViewController.m
//
// HomePageViewController.m
// IndianBloodBank
//
// Created by Roshith Balendran on 8/5/14.
// Copyright (c) 2014 Olympus. All rights reserved.
//
#import "HomePageViewController.h"
#import "SWRevealViewController.h"
#import "AboutUsViewController.h"
#import "SponsorsViewController.h"
#import "HowToDonateViewController.h"
@interface HomePageViewController ()
@end
@implementation HomePageViewController
@synthesize btn1SearchBlood,btn2DonateNow;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.055 green:0.055 blue:0.059 alpha:1]];
self.navigationController.navigationBar.translucent=NO;
SWRevealViewController *revealViewController = [self revealViewController];
[revealViewController panGestureRecognizer];
[revealViewController tapGestureRecognizer];
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"menu-icon"] style:UIBarButtonItemStyleBordered target:revealViewController action:@selector(revealToggle:)];
self.navigationItem.leftBarButtonItem = menuButton;
}
答案 0 :(得分:0)
解决方案很简单,我只需打开ARC。
SWRevealViewController类的基本要求是启用ARC。
在禁用ARC的情况下,您不能将此类用于滑出导航。
我的坏人。以为我在启用ARC的情况下检查了错误。我的错误。
因此,如果您遇到此错误“仅在ARC或GC模式下允许'弱'属性@synthesize”,只需打开ARC。