当我在 from 传递给我的(这是一个表格视图)时,我的lensInt(一个整数)被重置回 0 。我的菜单视图控制器是一个类似滑动背景的 facebook。此外,My嵌入在导航控制器栏中。Integer 只有在通过时才会重置(我使用断点来调试它)。lensInt =1
ViewController1
MenuViewController
ViewController1
@implementation TableViewController
我的ViewController1.h
:
#import <UIKit/UIKit.h>
@interface ViewController1 : UITableViewController{
NSMutableArray *ACUVUE;
NSMutableArray *BAUSCH_LOMB;
int lensInt;
}
我的ViewController1.m
:
#import "ViewController1.h"
@implementation ViewController1
@synthesize lensInt;
- (void)viewDidLoad
{
ACUVUE =[[NSMutableArray alloc]
initWithObjects:@"1-DAY ACUVUE DEFINE",@"1-DAY ACUVUE ASTIGMATISM", nil];
BAUSCH_LOMB=[[NSMutableArray alloc]
initWithObjects:@"B+L PURE VISION",@"B+L PURE VISION MULTIFOCAL",@"B+L PURE VISION TORIC",nil];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(self.lensInt == 0){
return [ACUVUE count];}
if(self.lensInt == 1){
return [BAUSCH_LOMB count];}
[self.tableView reloadData];}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; }
// Configure the cell...
if(self.lensInt == 0){
cell.textLabel.text = [ACUVUE objectAtIndex:indexPath.row];}
if(self.lensInt == 1){
cell.textLabel.text = [BAUSCH_LOMB objectAtIndex:indexPath.row];}
//---------- CELL BACKGROUND IMAGE -----------------------------
UIImageView *imageView = [[UIImageView alloc] initWithFrame:cell.frame];
UIImage *image = [UIImage imageNamed:@"LightGrey.png"];
imageView.image = image;
cell.backgroundView = imageView;
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
[[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
//Arrow
cell.accessoryType = UITableViewCellAccessoryNone;
return cell;}
@end
我的MenuViewController.m
:
#import "MenuViewController.h"
#import "ECSlidingViewController.h"
#import "ViewController1.h"
@interface MenuViewController ()
@property (strong, nonatomic) NSArray *menu;
@property (strong, nonatomic) NSArray *section1;
@property (strong, nonatomic) NSArray *section2;
@property (strong, nonatomic) ViewController1 *lens;
@end
@implementation MenuViewController
@synthesize lens;
@synthesize menu, section1, section2;
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
tableView.backgroundColor = [UIColor darkGrayColor];
cell.contentView.backgroundColor = [UIColor darkGrayColor];
cell.textLabel.textColor =[UIColor whiteColor];
tableView.separatorColor =[UIColor blackColor];}
- (void)viewDidLoad
{ [super viewDidLoad];
self.section1 = [NSArray arrayWithObjects:@"Acuvue", @"Bausch + Lomb", nil];
self.section2 = [NSArray arrayWithObjects:@"Daily", @"Monthly", nil];
self.menu = [NSArray arrayWithObjects:self.section1, self.section2, nil];
[self.slidingViewController setAnchorRightRevealAmount:190.0f];
self.slidingViewController.underLeftWidthLayout = ECFullWidth;}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return [self.menu count]; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section == 0) {
return [self.section1 count];
} else if (section == 1) {
return [self.section2 count];
}}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if (section == 0) {
return @"Contact Lens Brand";
} else if (section == 1) {
return @"Contact Lens Type";
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; }
if (indexPath.section == 0) {
cell.textLabel.text = [NSString stringWithFormat:@"%@", [self.section1 objectAtIndex:indexPath.row]];
} else if (indexPath.section == 1) {
cell.textLabel.text = [NSString stringWithFormat:@"%@", [self.section2 objectAtIndex:indexPath.row]];
}
return cell;}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UIViewController *newTopViewController;
if (indexPath.section == 0) {
if([[section1 objectAtIndex:indexPath.row] isEqual:@"Acuvue"]){
lens.lensInt= 0 ;
}
if([[section1 objectAtIndex:indexPath.row]isEqual:@"Bausch + Lomb"]){
lens.lensInt = 1 ;
}
NSString *identifier = [NSString stringWithFormat:@"product"];
newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier];
} else if (indexPath.section == 1) {
NSString *identifier = [NSString stringWithFormat:@"product"];
newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier];
}
[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
CGRect frame = self.slidingViewController.topViewController.view.frame;
self.slidingViewController.topViewController = newTopViewController;
self.slidingViewController.topViewController.view.frame = frame;
[self.slidingViewController resetTopView];}];
}
@end