0

別のViewControllerによって受信される通知を投稿する次のコードスニペットがあり、viewDidLoadiOS 7(およびXCode 5)より前はこれが機能していました:

if ([PFUser currentUser] && [PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]) {
        NSLog(@"Current user exists and is logged in"); //current works, so I know that this if-statement is satisfied
        [self performSegueWithIdentifier:@"GoToRatingsView" sender:self];
        [[NSNotificationCenter defaultCenter] postNotificationName:@"testSetup" object:nil]; //part in question
    }

そして、分離された ViewController には、次のものがあります。

(void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(testSetupFunction) name:@"testSetup" object:nil];
}

(void)testSetupFunction
{
    NSLog(@"This function executed");
}

現在、testSetupFunctionは実行されていません。つまり、通知は受信されません。別のビューに移動してから通知を投稿したためなのか、iOS 7 の新しい機能なのかはわかりませんが、現在、通知は受信されなくなりました。

ご協力いただきありがとうございます!

4

2 に答える 2

3

ビューコントローラーがロードされる時間になったら、通知を投稿します。

- (void)postNotificaiton
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"testSetup" object:nil];
}

if ([PFUser currentUser] && [PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]) {
    [self performSegueWithIdentifier:@"GoToRatingsView" sender:self];
    [self performSelector:@selector(postNotification) withObject:nil afterDelay:0.0];
}

セグエ ビュー コントローラーからロードされたことを示す通知を投稿し、その通知に応じて通知を投稿することもできますtestSetup

于 2013-10-17T00:00:38.433 に答える