Objective c 以编程方式管理viewController

Objective c 以编程方式管理viewController,objective-c,navigation,viewcontroller,Objective C,Navigation,Viewcontroller,我对viewController有问题。我创建了一个基于viewController的应用程序。mainViewController上有4个按钮。我使用此代码调用mainviewController -(void) applicationDidFinishLaunching:(UIApplication *)application{ self.window.rootViewController = self.viewController; [self.window makeKeyA

我对viewController有问题。我创建了一个基于viewController的应用程序。mainViewController上有4个按钮。我使用此代码调用mainviewController

-(void) applicationDidFinishLaunching:(UIApplication *)application{   

 self.window.rootViewController = self.viewController;  
[self.window makeKeyAndVisible];
}
然后单击主页上的任何按钮,我转到另一个viewController。此代码用于调用另一个viewController

-(IBAction)clickCalendarButton{
    calendarButton.selected=YES;
    [calendarButton
     setImage:[UIImage imageNamed:@"afvalkalender_pressed.png"] forState:(UIControlStateHighlighted+UIControlStateSelected)];
    GarbageCalendar *garbageCalendar = [[GarbageCalendar alloc] initWithNibName:@"GarbageCalendar" bundle:nil];
    [self presentModalViewController:garbageCalendar  animated:YES];
}

然后我想从另一个viewController转到主页。但是我没有进入主页viewController。

如果你想保持当前的UI设计,基于模态视图控制器,那么我认为你应该确保你的其他视图控制器有一个按钮来关闭视图。例如,“后退”或“完成”按钮。单击该按钮时,将调用一个委托方法,该方法执行:
[self dismissModalViewControllerAnimated:YES]

有关更多信息,请参见“解除模态视图控制器”一节


如果您想考虑UI的替代方法,可以使用<代码> UINavigationController <代码>,这将使您的生活从一个控制器返回到另一个控制器更容易一些。

在详细视图控制器上创建按钮,它调用类似这样的内容:

- (IBAction)goBack {
   [self dismissModalViewControllerAnimated:YES];
}

是的,当我使用此方法时,我转到主页。但我看到了问题。我使用AKAccordionKit框架。也许你知道。我在详图视图控制器上创建了手风琴菜单。我单击了“主页”按钮我转到主页,但accordion菜单ViewController没有删除我无法确切告诉您必须执行的操作,但似乎在调用
DismissModalViewController之前应该有方法删除accordion菜单已激活: