一个变量的问题,我一直在使用ODRefreshControll一个实现代码如下。我有一个uislider在另一个视图控制器(让我说myViewController),这个滑块正在改变tableview的变量(让我说myVariable)。主要问题是如果我用滑动条从myViewController更改myVariable并刷新tableview,myVariable将变为其初始值。我会提供我的代码,但它有点乱码,所以请问你从代码中不了解的任何内容。 这里是我的代码:关于耳目一新表视图
At myTableView.h:
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import "ODRefreshControl.h"
@interface myTableView : UITableViewController
-(void)gettingVariableFromMyViewController;
@end
在myTableView.m
#import "MekanListesi.h"
#import "AppDelegate.h"
#import "Ayarlar.h"
@interface myTableView()
@property(strong)NSNumber *myVariable;
@end
@implementation myTableView
@synthesize myVariable;
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
-(void)gettingVariableFromMyViewController{
NSString *unsettedVariable = [(AppDelegate *)[[UIApplication sharedApplication] delegate] variableUniversal];
if (!unsettedVariable) {
unsettedVariable= @"10000000000000000";
}
NSNumberFormatter * NSNF= [[NSNumberFormatter alloc] init];
[NSNF setNumberStyle:NSNumberFormatterDecimalStyle];
self.myVariable=[DegmesinEllerimiz numberFromString:AlinanYariCap];
}
- (void)dropViewDidBeginRefreshing:(ODRefreshControl *)refreshControl
{
double delayInSeconds = 1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[refreshControl endRefreshing];
});
}
在myViewController.h
#import <UIKit/UIKit.h>
@interface myViewController : UIViewController
@property (weak, nonatomic) IBOutlet UISlider *mySlider;
- (IBAction)actionMySlider:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *myVariabelLabel;
@end
在myViewController.m
#import "myViewController.h"
#import "AppDelegate.h"
#import "myTableView.h"
@interface myViewController()
@end
@implementation myViewController
@synthesize myVariableLabel;
@synthesize mySlider;
- (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.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)actionMySlider:(id)sender{
myVariableLabel.text = [NSString stringWithFormat:@"%1.1f",mySlider.value];
[(AppDelegate *)[[UIApplication sharedApplication] delegate] setuniversalVariable:[NSString stringWithFormat:@"%f",mySlider.value]];
myTableView *MTV=[[myTableView alloc]init];
[MTV gettingVariableFromMyViewController];
[MTV.tableView reloadData];
}
(在的appdelegate universalVar iable设置好的作为
@property(nonatomic,retain)NSString *universalVariable;
@synthesize universalVariable;
)
注意:我应对和Xcode中粘贴代码,并做出一些改变与方法,类和变量名,由于这样的事实,我的母语不是英语,所以可能会出现一些关于这些名称的错误,如果您看到这些错误之一,请警告我。
谢谢。
让我得到这个直,你正在改变一个变量时,滑块值改变,那么你希望此变量在myTableView更新?如果我是正确的,然后你的'actionMySlider'方法被调用时您滑块的值发生变化,那么在你创建表视图的新instace?如果一切是正确的到现在为止,你为什么每次你在改变滑块值时创建一个新的实例? – danypata
没有,我已经调用方法从tableview中当滑块被更改。这里是我的消息:'[MTV gettingVariableFromMyViewController];'。我的我ssue是当我拉resfresh我的变量变成它的初始变量。我正在使用github中的一个类来设置一个拉来刷新的称为ODRefreshControll的类。 – user2393702
在这里很难找到问题,因为代码并不那么相关,当您执行pull进行刷新时会调用哪些代码。通常在这种情况下会调用一些委托方法,也可能调用表视图委托/数据源委托。 – danypata