在我的申請,我有4 UIViewcontrollers
- A,B,C和D.駁回視圖控制器和呈現另一個的viewController
從我UIViewController A
,UIVIewControllers B或C或d可以被呈現。假設從A出現了B,那麼在B上有兩個UIButtons
,點擊哪個,我需要解僱B和現在C或者解僱B和現在D.這是成功的,但是首先在解僱後B,A的屏幕上出現,然後進入到C或D.
這裏就是我所做的:
按下按鈕,在B上的動作是:
{
UINavigationController *controller = (UINavigationController *)self.parentViewController;
NSLog(@"%@",[controller parentViewController]);
UITabBarController *tabBarReference = (UITabBarController *)[controller parentViewController];
HomePageViewController *presController = (HomePageViewController *)tabBarReference.presentingViewController;
[presController dismissTabControllerWithHandlerWithSenderAtIndex:1];
}
在A,我有這些方法:
-(void)dismissTabControllerWithHandlerWithSenderAtIndex:(NSInteger)index
{
if(index == 0)
{
[self dismissViewControllerAnimated:NO completion:^{
[self aboutButtonPressed:self];
}];
}
else
{
[self dismissViewControllerAnimated:NO completion:^{
[self settingsButtonPressed:self];
}];
}
}
這裏是我打電話的方法..
- (IBAction)settingsButtonPressed:(id)sender
{
[self.contactUsView setHidden:YES];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *deviceType = [prefs objectForKey:@"DeviceType"];
NSString *iOSType = [prefs objectForKey:@"iOSType"];
if([iOSType isEqualToString:@"iOS7"])
{
if([deviceType isEqualToString:@"iPad"])
{
SettingsViewController *settingsPage = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController_iPad" bundle:NULL];
settingsPage.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentViewController:settingsPage animated:YES completion:NULL];
}
else
{
SettingsViewController *settingsPage = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:NULL];
settingsPage.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentViewController:settingsPage animated:YES completion:NULL];
}
}
else
{
if([deviceType isEqualToString:@"iPad"])
{
SettingsViewController *settingsPage = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController_iPad_iOS6" bundle:NULL];
settingsPage.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentViewController:settingsPage animated:YES completion:NULL];
}
else
{
SettingsViewController *settingsPage = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController_iOS6" bundle:NULL];
settingsPage.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentViewController:settingsPage animated:YES completion:NULL];
}
}
}
你解聘控制器第一&然後顯示一個控制器? – footyapps27
是的..我需要這樣做..當C或D出現時,B不應該記憶。這是因爲只有A可以呈現B,C或D – Shradha
問題是您正在使用完成塊來顯示內容! – footyapps27