一個變量的問題,我一直在使用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