我试图在第一次加载应用程序时执行segue.我可以在调试器中看到我的打印消息,但Perform Segue不起作用.我没有得到任何错误.有人可以告诉我什么错了吗?
import UIKit
import LocalAuthentication
let isFirstLaunch = UserDefaults.isFirstLaunch()
extension UserDefaults {
// check for is first launch - only true on first invocation after app install, false on all further invocations
// Note: Store this value in AppDelegate if you have multiple places where you are checking for this flag
static func isFirstLaunch() -> Bool {
let hasBeenLaunchedBeforeFlag = "hasBeenLaunchedBeforeFlag"
let isFirstLaunch = !UserDefaults.standard.bool(forKey: hasBeenLaunchedBeforeFlag)
if (isFirstLaunch) {
UserDefaults.standard.set(true, forKey: hasBeenLaunchedBeforeFlag)
UserDefaults.standard.synchronize()
}
return isFirstLaunch
}
}
class …Run Code Online (Sandbox Code Playgroud) 也许我错过了一些简单的事情.我从一个按钮添加了一个模态segue到一个视图控制器.然后我添加了一些准备ForSegue的步骤(并检查我是否正确命名了segue).我已经做了几次没有问题.
现在,当我单击按钮时,模态窗口打开,但prepareForSegue不会触发.我尝试在prepareForSegue中添加一个日志语句,然后再检查标签的描述(理论上它应该触发任何segue).但我什么也没记录.
有任何想法吗?
我是大家,我正在为新的应用程序开发登录和密码界面,我想有条件地执行一个segue,只有当密码和登录都没问题时.我在故事板中使用"推送"样式和"loginMainIdentifier"创建了一个Segue.实现文件夹的编写如下:
- (IBAction)pushValidateButton:(id)sender {
if([loginText.text isEqualToString:@""] || [passwordText.text isEqualToString:@""] )
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Identification" message:@"Veuillez completer l'ensemble des cases SVP" delegate:self cancelButtonTitle:@"Revenir" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStyleDefault;
[alert show];
}
if(![loginText.text isEqualToString:@""] && ![passwordText.text isEqualToString:@""])
{
//creation of the request
NSMutableString *string = [[NSMutableString alloc] initWithCapacity:100];
NSString *string01 = @"http://89.82.227.112/Vico/login.php?l=&m=";
[string appendFormat:string01];
NSString *string02 = loginText.text;
NSString *string03 = passwordText.text;
[string insertString:string03 atIndex:41];
[string insertString:string02 atIndex:38];
NSURLRequest *request01=[NSURLRequest requestWithURL:[NSURL URLWithString:string]cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
//create the connection and start loading data …Run Code Online (Sandbox Code Playgroud) 在我的内部我viewDidLoad想要一些基于前一个控制器的自定义代码.
如何在目标控制器的viewDidLoad中访问segue源控制器或先前的segue标识符来处理此问题?
我一直在尝试从精灵工具包SKScene层中执行segue.我的应用程序要求用户触摸场景中的图像,这将推高新的UIViewController.但每次我尝试在SKScene游戏层内执行时,它都会给我输出没有带标识符错误的segue.我有一个segue并用标识符指定它.
我的简单问题是,如何运行SKScene游戏层?请帮帮我.
我正在通过按下一个连接到我想要更改为的视图控制器的自定义segue的按钮来更改根视图控制器.自定义segue看起来像:
- (void)perform{
UIViewController *source = (UIViewController *)self.sourceViewController;
source.view.window.rootViewController = self.destinationViewController;
}
Run Code Online (Sandbox Code Playgroud)
但这只会立即更改根视图控制器.我希望控制器能够在旧控制器上消失.
我想在我的应用程序中执行"连接"按钮.当您点击它时,如果您有正确的登录信息,它将打开一个新页面.
但是,我读到我们无法撤消segue,我想我需要手动调用它.你有好主意吗 ?
我还是尝试过这样的事:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject) {
if checkLog == true
{
//finish
}
else
{
// undo
}
}
@IBAction func ConexTAP(sender: UIButton)
{
//check login
}
Run Code Online (Sandbox Code Playgroud) DetailViewController:
@IBOutlet var selectedBundesland: UILabel!
Run Code Online (Sandbox Code Playgroud)
TableViewController:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "BackToCalculator") {
var vc:FirstViewController = segue.destinationViewController as FirstViewController
vc.selectedBundesland.text = "Test"
}
Run Code Online (Sandbox Code Playgroud)
IBOutlet已连接!
错误:致命错误:在解包可选值时意外发现nil
我阅读了关于Optionals的多个页面,但我不知道我的问题的答案.
您是否需要有关我的项目的更多信息?
你好我试图从一个模态到标签栏视图控制器,而不会丢失标签栏?我知道问题很简短,但这就是我要问的问题.
场景:我有一个Tab Bar视图控制器,A和B. B模态到C视图控制器.然后我想返回View Controller A.
斯威夫特请:D
我有2 UIButtons个观点.每个都链接到2个不同的视图.他们必须根据您刚刚点击的按钮传递不同的数据.
我知道有不同的方法,segue但我想使用prepareForSegue每个版本(似乎更清楚我segue在故事板和一些代码来解释发生了什么).
我试过这个......
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue != "historySegue") {
let controller = segue.destinationViewController as! ResultViewController
controller.match = self.match
} else {
let controller = segue.destinationViewController as! HistoryViewController
controller.history = self.history
}
}
@IBAction func showHistory(sender: UIButton) {
performSegueWithIdentifier("historySegue", sender: self)
}
@IBAction func match(sender: UIButton) {
performSegueWithIdentifier("matchSegue", sender: self)
}
Run Code Online (Sandbox Code Playgroud)
但是当我点击按钮时出现错误
(LLDB)
segue ×10
ios ×8
swift ×5
objective-c ×3
iphone ×2
uistoryboard ×2
xcode ×2
cocoa-touch ×1
iboutlet ×1
sprite-kit ×1
tableview ×1
viewdidload ×1
xcode4.2 ×1