我正在尝试编写非常简单的iOS5应用程序,只是搜索特定类型的数据.
它包含两个屏幕,用户在第一个屏幕中放置一些数据,应用程序检查数据,如果有效,应用程序将在新屏幕上进行搜索并显示结果.
我对iOS和故事板完全不熟悉,我阅读了不少教程,但还是无法弄清楚如何正确检查输入和切换到新屏幕.
使用iOS5我想我应该使用segue,但这都是自动的.即使我可以在prepareForSegue方法中放入一些代码,但是如果检查失败,我还是找不到如何阻止segue发生的方法,或者我是否尝试完全错误?
我有一个奇怪的问题.我在我的故事板中创建了2个viewcontrollers:testSegueViewcontroller和nextPageViewController.
testSegueViewcontroller包含一个UIButton NextPage.我按住Ctrl键从这个按钮拖动到nextPageViewController并创建了一个Push segue.
问题是,当我运行此程序并单击testSegueViewcontroller中的NextButton时,它不显示nextPageVieController :-(
我做错了什么想法?
使用故事板我为第二个View控制器创建了一个新屏幕,并在底部添加了一个工具栏.但是当显示视图时,工具栏不会出现.我正在使用Segue改变观点.
可能有什么不对?
我正在使用iOS 5 SDK创建一个应用程序.我设法使用Storyboard的Segues推送视图,但我找不到弹出当前视图并返回上一个视图的正确方法.
我没有使用任何navigationController(该应用程序没有任何顶部或底部栏).
我不认为使用modal或push segue是另一种方式,因为它实例化一个新的控制器.
我是否必须使用相反动画的自定义Segue并在最后删除视图?或者,还有更好的方法 ?
我有一个设置屏幕,因为我有一个表格单元格.通过点击我进入另一个屏幕,用户可以选择一个选项,当按下后退按钮时我想要它回到上一个视图控制器.


我可以放置一个自定义栏按钮项,但我想使用导航栏中的后退按钮返回到父视图控制器,而不是使用视图上的自定义按钮.
我似乎无法覆盖导航后退按钮将其指向我的展开segue操作,并且由于后退按钮没有出现在故事板上,我无法将绿色的"退出"按钮拖到它上面
是否可以使用后退按钮展开推送segue?
我在自定义Segue中定义了以下内容,让我们称之为SegueX:
@interface SegueX : UIStoryboardSegue
@end
@implementation SegueX
- (void)perform
{
CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionFade;
[[self.sourceViewController navigationController].view.layer addAnimation:transition forKey:kCATransition];
[[self.sourceViewController navigationController] pushViewController:[self destinationViewController] animated:NO];
}
@end
Run Code Online (Sandbox Code Playgroud)
在我的故事板中,我刚刚将标准Push segue更改为SegueX.出于某种原因,这将删除我的导航栏和标签栏.此外,我在自定义segue之后在故事板中定义的所有UIBarButtonItem都在运行时隐藏.我该如何解决?我希望不是这样的......
在更改为自定义segue之前

更改为自定义segue后


将其保存到Main.storyboard
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="aUj-3O-DdX">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="prC-ky-DMz">
<objects>
<navigationController definesPresentationContext="YES" id="aUj-3O-DdX" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="2Uu-Rm-RXH">
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<toolbar key="toolbar" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="aOK-Kc-Mfz">
<rect …Run Code Online (Sandbox Code Playgroud) 我需要从app delegate启动一个视图控制器.
在您在视图控制器之间执行segue的方式.
我有一个if语句,如果true需要显示一个视图控制器,这是在app委托中.
我如何从应用代表执行此操作?
我正在开发一个应用程序,需要在view和containerView之间传递数据.我需要从两个视图发送数据和接收数据.
让我解释一下:
我可以通过协议更改Label Master(触摸容器按钮),但我无法更改标签容器(触摸主按钮).发生的事情是Master通过以下方式与容器连接.但是没有跟随Container链接到Master.
我试图添加但是segue,但它有效.
主视图控制器:
import UIKit
protocol MasterToContainer {
func changeLabel(text:String)
}
class Master: UIViewController, ContainerToMaster {
@IBOutlet var containerView: UIView!
var masterToContainer:MasterToContainer?
@IBOutlet var labelMaster: UILabel!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "containerViewSegue" {
let view = segue.destinationViewController as? Container
view!.containerToMaster = self
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func button_Container(sender: AnyObject) {
masterToContainer?.changeLabel("Nice! It's work!")
}
func changeLabel(text: String) {
labelMaster.text = text …Run Code Online (Sandbox Code Playgroud) 试图为iPad制作基于故事板的应用程序.在其中我需要从开始屏幕(UIViewController)转换到主屏幕(UISplitViewController)然后转换到全屏视图(再次UIViewController).
我在网上看到了很多讨论(至少有几个 - 关于stackoverflow),说明UISplitViewController不能在基于Storyboard的应用程序中以任何其他方式使用,而不是RootViewController.一些线程包含解决方法,还有替代splitview(https://github.com/mattgemmell/MGSplitViewController)来处理这个问题.
但我无法理解的是,为什么Apple文档恰恰相反.这是Apple iOS 5.0库中章节的链接.它指出:
要将拆分视图控制器添加到应用程序的故事板:
要显示拆分视图界面,请执行以下操作之一:
我在很多方面尝试过它,但最后两个语句中描述的方法从未奏效.modal segue和performSegue都失败了,众所周知的错误:
"***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'应用程序试图以模态方式呈现拆分视图控制器......"
有人能够解释一下吗?这是XCODE/iOS 5.0中的错误还是文档中的错误?
此致,彼得
我目前正在从Apple的开始开发iOS应用程序中完成教程.
在Tutorial:Storyboards页面(上面的链接)上,我被告知要为两个视图制作自定义类.为简单起见,我将其称为表视图(具有表)和添加视图(具有用于向表添加项的文本字段).
表视图有一个链接按钮打开添加视图,添加视图的导航栏上有两个按钮:取消和完成.
有人告诉我unwindToList在Add View的.m文件中写一个空方法:
- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{
}
Run Code Online (Sandbox Code Playgroud)
然后我被告知将"取消"和"完成"按钮链接到"场景基座"中的"退出"项目(请参见底部的图像),然后选择方法unwindToList.因此,正如教程中引用的那样,这应该是应该发生的:
现在,运行您的应用程序.在启动时,您会看到一个表视图 - 但其中没有数据.您可以单击"添加"按钮并从[表格视图]导航到[添加视图].您可以单击取消和完成按钮以导航回[表格视图]."
但是,当我单击取消或完成时,根本没有任何反应.我确定两者都是联系在一起的.
提前致谢!

segue ×10
ios ×7
storyboard ×3
swift ×3
ios5 ×2
cocoa-touch ×1
ios7 ×1
iphone ×1
objective-c ×1
swift2 ×1
toolbar ×1
uistoryboard ×1
xcode ×1
xcode4 ×1