【问题标题】:ios5 presentmodalviewcontroller multiple viewsios5 presentmodalviewcontroller 多视图
【发布时间】:2012-03-02 14:48:54
【问题描述】:

我通过 presentModalViewController 制作了一个带有视图的应用。

第一个视图是 ViewController.m

#import "secondview.h"
- (IBAction)pushme:(id)sender {    
    secondview *second = [[secondview alloc] initWithNibName:nil bundle:nil];    
    [self presentModalViewController:second animated:YES];}

第二个视图是secondview.m

#import "thirdview.h"
- (IBAction)dismiss:(id)sender {    
    [self dismissModalViewControllerAnimated:YES];}
-(IBAction)gohead:(id)sender{    
    thirdview *third = [[thirdview alloc] initWithNibName:nil bundle:nil];    
    [self presentModalViewController:third animated:YES];}

第三个视图是thirdview.m

- (IBAction)backtomain:(id)sender {    
    [self dismissModalViewControllerAnimated:YES];}

我的问题是,当我在第三个视图中单击按钮 (backtomain) 时,我想返回第一个视图,而不是第二个视图。那么如何组织 backtomain 函数呢?

谢谢~

【问题讨论】:

    标签: ios5 xcode4


    【解决方案1】:

    您可以使用以下步骤。

    1. 在第二个视图控制器中存储第三个视图控制器的引用。

      @property (nonatomic, strong) secondview *modalV; -(IBAction)pushme:(id)sender { secondview *second = [[secondview alloc] initWithNibName:nil bundle:nil]; self.modalV = 第二; [第二次发布]; [自我presentModalViewController:modalV动画:YES]; }

    2.在第三个视图控制器中设置一个协议,当你按下“backToMain”时发送一个消息

    然后在第二个视图控制器中,处理消息

    - (void) backToMain
    {
        if(self.modalV)
        {
            [modalV dismissModal]; // define this in third
            [modalV release];
        }
    
        [self dismissModalViewControllerAnimated:YES]; // it will dismiss second
    }
    

    第三

    - (void) dismissModal
    {
        [self dismissModalViewControllerAnimated:YES]
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2012-06-03
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多