0

我目前正在使用 SWRevealController 进行滑出式导航。我遇到的问题是我的标签没有根据后端的更改正确更新。考虑到我在leftnavigation(菜单)视图控制器中的代码,我认为每次菜单滑出时它都会更新新数据:

-(void)viewWillAppear:(BOOL)animated
{
 [super viewWillAppear:animated];
 PFUser *currentUser = [PFUser currentUser];
int currency = [[currentUser objectForKey:@"currency"] intValue];


    // Adding Image to ImageView
    PFFile *image = (PFFile *)[currentUser objectForKey:@"image"];
    [image getDataInBackgroundWithBlock:^(NSData *data, NSError *error){
        if (error)
        {
            self.profileImage.image = [UIImage imageNamed:@"imagePlaceHolder"];

        }
        else
        {
            UIImage *userImage = [UIImage imageWithData:data];
            self.profileImage.image = userImage;
        }
    }];

    self.userCurrency.text = [NSString stringWithFormat:@"%d hBux earned.", currency ];
    self.greetingMessage.text = [NSString stringWithFormat:@"Hello, %@!", [currentUser objectForKey:@"username"]];


}

难道我做错了什么?当然,它不能进入​​ viewDidLoad,因为据我了解,它在初始化时只被调用一次?

4

2 回答 2

2

在您希望拥有侧边栏菜单的每个视图控制器中(在 SWRevealViewController 库中,它调用“前视图控制器”).m 文件在 viewDidLoad 方法中添加行self.revealViewController.delegate = self,并在末尾添加以下行

#pragma mark - SWRevealViewController Delegate

- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
    if (position == FrontViewPositionRight) {
       // do all the changes you did in viewWillAppear here
    }
}

另外,不要忘记在 viewController 的 .h 文件中添加 SWRevealViewControllerDelegate:

@interface YourViewController : UIViewController<SWRevealViewControllerDelegate>
于 2014-11-09T12:40:40.913 回答
0

Add ` self.revealViewController.delegate = self; in your ViewController.m didLoad Method.

Add,

- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position

{

 if (position == FrontViewPositionRight) {
    NSLog(@"When Slide Menu is Pushed");
}

if (position == FrontViewPositionLeft) {
    NSLog(@"When Slide is Popped out");   
}

}

Add @interface FirstViewController : UIViewController< SWRevealViewControllerDelegate > in your ViewController.h

于 2014-11-20T08:35:57.930 回答