簡體   English   中英

iOS-如何將導航控制器添加到項目?

[英]ios-How do I add a navigation controller to a project?

我有一個項目,並且在維護導航控制器(通過接口構建器添加)時遇到了麻煩。 我要建立一個層次結構,因為它是說視圖未添加到窗口層次結構中。 我可以使用performSegueWithIdentifier在一個視圖之間切換,但是第二次使用不起作用。 問題是它不允許我從一種視圖移動到另一種視圖。 我已經閱讀過有關混淆appdelegate或添加performForSegue的內容,但是我不知道如何使用它。

如果我有3個類似1-> 2-> 3的視圖,有什么建議嗎? 1和2將具有performSegueWithIdentifier。

謝謝,麻煩您了!

這是我的故事板: http ://s1370.photobucket.com/user/sean_cleveland1/media/Untitled_zpsc9022523.png.html?o =0

這是我的performSegueWithIdentifier函數:

//Used in FirstVC.
[self performSegueWithIdentifier: @"firstToSecond" sender: self];
//Used in SecondVC... this doesn't work!
[self performSegueWithIdentifier: @"secondToThird" sender: self];

您的故事板

只需控制+從“ Pop to Main Screen” UIButton拖動到退出(場景底部的綠色按鈕),選擇在第一個屏幕中聲明為標題為“ Main”的展開方法,例如

-(IBAction)customUnwind:(UIStoryboardSegue *)sender
{

NSLog(@"Unwind successful");

}

首先定義您的第三個視圖標識符

在此處輸入圖片說明

- (void)segue
{

    [self performSegueWithIdentifier:@"mySegue" sender:self];

}

僅在任何條件或操作下使用以下方法

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if([[segue identifier] isEqualToString:@"mySegue"]) {


    }
}

我為您創建了一個簡單的示例項目

https://github.com/iDevAndroid/NavigationSample

在此處輸入圖片說明

試試這個。 因為您在下一行之后執行模型事務,所以您正在使用以關閉模型。

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{



    [self becomeFirstResponder];
        [self dismissViewControllerAnimated:YES completion:^{
[self emailDelivaryedSuccessfully];
];

}



-(void)emailDelivaryedSuccessfully{


        [self performSegueWithIdentifier: @"secondToThird" sender: self];
}

您不需要使用performSegueWithIdentifier:如果在Storyboard中進行操作,只需在代碼中注釋“ performSegueWithIdentifier:prepareForSegue:方法的代碼,然后嘗試。 如果您正在使用performSegueWithIdentifier:則還需要實現prepareForSegue:方法。 恩。

[self performSegueWithIdentifier: @"firstToSecond" sender: self];

// prepareforsegue方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if([[segue identifier] isEqualToString:@"firstToSecond"]) {

        SecondViewController *destinationController = [segue destinationViewController];
       //set data if any
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM