phu*_*ehe 70 objective-c uiviewcontroller modal-view ios
任何人都可以给我示例代码,我可以用来首先提出一个模态视图控制器,然后解雇它?这就是我一直在尝试的:
NSLog(@"%@", blue.modalViewController);
[blue presentModalViewController:red animated:YES];
NSLog(@"%@", blue.modalViewController);
[blue dismissModalViewControllerAnimated:YES];
NSLog(@"%@", blue.modalViewController);
此代码位于viewDidLoad中("blue"和"red"都是UIViewController的子类).我希望我会显示红色视图然后立即隐藏它,并带有一些动画.但是这段代码只提供了模态视图,并没有忽略它.任何的想法?第一个日志显示"null",而另外两个日志显示<RedViewController:0x3d21bf0> Tom*_*ren 107
首先,当您将该代码放在applicationDidFinishLaunching中时,可能是从Interface Builder实例化的控制器尚未链接到您的应用程序(因此仍然是"红色"和"蓝色" nil).
但是要回答你最初的问题,你所犯的错误就是你正在呼唤dismissModalViewControllerAnimated:错误的控制器!它应该是这样的:
[blue presentModalViewController:red animated:YES];
[red dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
通常,"红色"控制器应该决定在某个时候解雇自己(可能是在点击"取消"按钮时).然后"红色"控制器可以调用该方法self:
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
如果它仍然不起作用,它可能与控制器以动画方式呈现的事实有关,因此可能不允许在呈现控制器之后很快解除控制器.
max*_*max 13
我在xcode 4.52中最简单的方法是创建一个额外的视图并使用segue模式连接它们(控制按钮从视图一拖到第二个视图,选择模态).然后将按钮拖动到第二个视图或您创建的模态视图.控制并将此按钮拖动到头文件并使用操作连接.这将在您的controller.m文件中创建一个IBaction.在代码中找到您的按钮操作类型.
[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
Sur*_*gch 13
针对Swift 3进行了更新
创建两个视图控制器,每个控制器上都有一个按钮 对于第二个视图控制器,将类名设置为SecondViewController,将故事板ID设置为secondVC.
ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBAction func presentButtonTapped(_ sender: UIButton) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let myModalViewController = storyboard.instantiateViewController(withIdentifier: "secondVC")
myModalViewController.modalPresentationStyle = UIModalPresentationStyle.fullScreen
myModalViewController.modalTransitionStyle = UIModalTransitionStyle.coverVertical
self.present(myModalViewController, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
SecondViewController.swift
import UIKit
class SecondViewController: UIViewController {
@IBAction func dismissButtonTapped(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
资源:
小智 9
presentModalViewController:
MainViewController *mainViewController=[[MainViewController alloc]init];
[self.navigationController presentModalViewController:mainViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
dismissModalViewController:
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
202346 次 |
| 最近记录: |