我有一個viewController
調用AudioViewController
。在這方面,我有這個方法:從類方法訪問UINavigationController
- (IBAction)stopAction:(id)sender
{
[self.audioClass stop];
}
我有一個NSObject
類叫做AudioClass
。在
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger) buttonIndex
-(void) stop
{
if (!recorder.recording)
{
[player stop];
player.currentTime = 0;
[self.recordOrPauseButton setEnabled:YES];
[self.stopButton setEnabled:NO];
[self alertMessage];
}
else
{
[recorder stop];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive:NO error:nil];
[self alertMessage];
}
}
-(void) alertMessage
{
UIAlertView *stopAlert = [[UIAlertView alloc] initWithTitle: @"Done!"
message: @"Do you want to save it?"
delegate: self
cancelButtonTitle:@"Cancle"
otherButtonTitles:@"Save", nil];
[stopAlert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger) buttonIndex
{
if (buttonIndex == 0)
{
// this is the cancel button
}
else
{
[self.sqLiteDB insertDataIntoTable:soundFilePath And:outputFileURL];
[self.navigationController popViewControllerAnimated:YES];
}
}
現在,這是不承認的
[self.navigationController popViewControllerAnimated:YES];
:在這方面,我有這些方法。
因爲,它在NSObject
類中。我如何訪問navigationController
並從AudioViewControlelr
返回到之前的ViewController
?
如果任何人有任何解決方案,請與我分享。提前致謝。祝你有美好的一天。
你不能只是在viewController裏面移動AlertView邏輯嗎? – 2014-11-04 16:04:47
@GonjiDev感謝您的評論。我不能那樣做。因爲' - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player成功:(BOOL)flag'這個方法也使用相同的'[self alertMessage]''方法。這是'AudioClass'中。 – Tulon 2014-11-04 16:46:30
以下@CleverError回答你應該通知viewController當 - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)播放器成功:(BOOL)flag'被調用。你可以通過各種方式實現這一點,可以使用NSNotificationCenter。顯示警報是viewControllers的責任。 – 2014-11-04 16:53:40