在我的应用程序中,我有一个按编程方式执行segue的按钮:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以引用目标视图并传递一些参数.
我知道在prepareForSegue方法中,我可以用:来引用它myDestinationViewController *vc = [segue destinationViewController];,但我不知道如何以编程方式执行segue.
你有什么想法?
谢谢,亚萨
更新:
对不起这个问题我很抱歉!我只是发现,即使以编程prepareForSegue方式调用segue,也会调用该方法,因此可以以相同的常规方式传递参数.
我的问题是我正在寻找使用storyboard和xib的方法.但我找不到以编程方式加载和显示故事板的正确方法.Project开始使用xib进行开发,现在很难将所有xib文件嵌套在storyboard中.所以我在代码中寻找一种方法,比如alloc, init, push用于viewControllers.在我的情况下,我在故事板中只有一个控制器:UITableViewController它有静态单元格,其中包含我想要显示的一些内容.如果有人知道在没有大量重构的情况下使用xib和storyboard工作的正确方法,我将非常感谢您的帮助.
我花了两天时间尝试混合和纯Autolayout方法的各种解决方案,以实现自动布局之前的简单滚动视图设置,现在它已经正式 - 我必须太愚蠢.我主要是在Storyboard中设置它(好吧,它就是这样).
所以这是我的求助.
Viewtree:
UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
Run Code Online (Sandbox Code Playgroud)
按钮应该水平滚动(从左到右,反之亦然).有人可以请让我知道如何设置的约束来实现这个使用纯自动布局???
-
我尝试过混合方法,如下所示:
UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
Run Code Online (Sandbox Code Playgroud)
...并根据Apple的TechNote contentview为translatesAutoresizingMaskIntoConstraints设置和设置设置固定的宽度和高度限制.使用约束设置按钮和滚动视图.这让滚动视图滚动(yay)但是唉,它滚动得太远了!据我所知,滚动宽度在某种程度上比我设置的内容视图加倍了??? !!! ???
我尝试了纯自动布局方法,包括contentview有无.所有观点都是translatesAutoresizingMaskIntoConstraints=NO,除了self.view.按钮具有固定的宽度/高度约束,并固定到滚动视图的所有四个边缘.什么都不滚动.
所以我完全不知道为什么我不能让它正常工作.非常感谢任何帮助,如果您需要任何其他信息,请询问!
更新截图与解决方案 - buttonZ约束:

编辑@ Jamie Forrest 所以解决方案结果是最后一个按钮的错误尾随约束.而不是6441,我设置的值是负数,-6441.棘手的是,在storyboard中设置值时,Pin工具栏中有两个选项:

当前画布值为负(导致无滚动),下面的选项为正(激活滚动).这意味着我不是傻瓜,但我猜至少半盲.虽然,为了我的辩护,XCode没有为"错误"设置显示错误,这有点令人不安吗?
再次编辑 现在这很有趣......将尾随值从-6441(无滚动)更改为6441启用滚动.但我的老朋友"太多内容化"又回来了,导致内容大小是应有的两倍!获取正确内容滚动的解决方案是将尾随约束设置为ZERO!当在Storyboard中工作但是查看@Infinity James的代码时,这并不明显,它应该是什么.
我一直收到以下错误:
Storyboard (<UIStoryboard: 0x7ebdd20>) doesn't contain a view controller
with identifier 'drivingDetails'
Run Code Online (Sandbox Code Playgroud)
这是代码:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"drivingDetails"];
controller.title = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"name"];
[self.navigationController pushViewController:controller animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了identifier,UIStoryboard但我仍然收到此错误.

我有一个非常简单的UITextView子类,它添加了"占位符"功能,您可以在Text Field对象中找到它.这是我的子类代码:
import UIKit
import Foundation
@IBDesignable class PlaceholderTextView: UITextView, UITextViewDelegate
{
@IBInspectable var placeholder: String = "" {
didSet {
setPlaceholderText()
}
}
private let placeholderColor: UIColor = UIColor.lightGrayColor()
private var textColorCache: UIColor!
override init(frame: CGRect) {
super.init(frame: frame)
self.delegate = self
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.delegate = self
}
func textViewDidBeginEditing(textView: UITextView) {
if textView.text == placeholder {
textView.text = ""
textView.textColor = textColorCache
}
}
func textViewDidEndEditing(textView: UITextView) {
if textView.text == "" …Run Code Online (Sandbox Code Playgroud) 我有一个UIViewController视图作为另一个UIViewController视图顶部的子视图/模态,例如子视图/模态应该是透明的,并且任何添加到子视图的组件都应该是可见的.问题是我有子视图显示黑色背景而不是有clearColor.我试图制作UIView一个clearColor而不是黑色背景.有人知道它有什么问题吗?任何建议表示赞赏.
FirstViewController.m
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
[vc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentModalViewController:vc animated:NO];
Run Code Online (Sandbox Code Playgroud)
SecondViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.opaque = YES;
self.view.backgroundColor = [UIColor clearColor];
}
Run Code Online (Sandbox Code Playgroud)
决议:我解决了问题.它适用于iPhone和iPad.没有黑色背景的模态视图控制器只是clearColor/transparent.我需要改变的唯一一件事是我换成UIModalPresentationFullScreen了UIModalPresentationCurrentContext.这有多简单啊!
FirstViewController.m
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用以下modalPresentationStyle财产navigationController:
FirstViewController.m
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; …Run Code Online (Sandbox Code Playgroud) 我的Xcode项目最近使用故事板进入一个非常奇怪的状态:Xcode不断构建整个项目,特别是每个按键后的故事板.我发现没有理由在我的项目中将所有有趣的文件(故事板和项目)区分为Xcode中的设置(也许我只是找不到它).不用说这个"功能"使我的项目工作几乎不可能因为当我键入新代码时,CPU一直在占用重建故事板.有谁见过这个?
Xcode6Empty Application在创建新项目时删除了模板.我们如何Xcode6在早期版本中创建一个空的应用程序(没有Storyboard)?
我刚刚创建了一个应用程序,并开始将@ IBOutlet连接到故事板.我将其中一些连接到具有基本样式的UITableViewCell原型单元格中的标签.当我连接它虽然我在故事板中得到这个错误:
从TableViewController到UILabel的detailText Outlet无效.插座无法连接到重复内容.
有人可以帮我吗?我已经按照我一直成功的方式设置了它,但这一次它让我知道了这个错误.
ios ×10
storyboard ×10
xcode ×6
objective-c ×3
xcode6 ×2
autolayout ×1
build ×1
cocoa-touch ×1
iphone ×1
parameters ×1
segue ×1
swift ×1
uiscrollview ×1
view ×1
xib ×1