标签: segue

(Swift)当多个视图控制器导致相同视图时,展开segue?

我正在尝试编写一个刽子手游戏,并且在解开细分时遇到麻烦.我有多个视图控制器,最终导致相同的视图,用户在其中播放实际的刽子手.但是,根据呈现控制器,我希望游戏处于不同的"模式"(即:多人游戏,单人游戏等).我正在尝试添加一个解除前一个视图控制器的游戏按钮,但是当用户可以使用多个路径到达此视图时,我不确定如何展开.

换句话说,我的应用程序有点:

A - > B - > C或

A - > D - > C其中C可以(理想地)展开到D或B.

我想知道实现这个的最佳方法是什么?我应该只将所有视图控制器嵌入导航控制器吗?或者有没有办法根据某种条件呈现某个视图控制器?感谢您的任何帮助!

uiviewcontroller ios segue swift unwind-segue

12
推荐指数
3
解决办法
7073
查看次数

如何在AppDelegate中执行Segue?

我正在尝试使用Storyboard在IOS 5.1上完成一个应用程序.基本上我正在做一个Dropbox应用程序.由于我使用Dropbox SDK链接到Dropbox是在AppDelegate.m中处理的.用户可以选择在会话中取消链接,并在不同的View Controller中再次链接.因此,每次用户链接和取消链接的应用程序必须将视图从Appdelegate切换到未连接到rootviewcontroller的视图控制器

在最初的Dropbox示例中,Dropbox处理了如下代码的转换

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    if ([[DBSession sharedSession] handleOpenURL:url]) {
        if ([[DBSession sharedSession] isLinked]) {
            [navigationController pushViewController:rootViewController.photoViewController animated:YES];
        }
        return YES;
    }

    return NO;
}
Run Code Online (Sandbox Code Playgroud)

但是我正在使用带有导航控制器的Storyboard,并且以下任何一种方法都不起作用我将方法放在注释中.

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    if ([[DBSession sharedSession] handleOpenURL:url]) {
        if ([[DBSession sharedSession] isLinked]) {

            NSLog(@"App linked successfully!");
            // At this point you can start making API calls

            /*UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"MeetingViewController"];
            [self.navigationController pushViewController:viewController animated:YES]; */

           //[self performSegueWithIdentifier:@"xxxx" sender:self];

           /* LoginDropboxViewController *loginController=[[LoginDropboxViewController alloc] initWithNibName:@"LoginDropbox" …
Run Code Online (Sandbox Code Playgroud)

objective-c storyboard dropbox ios segue

11
推荐指数
2
解决办法
1万
查看次数

在目标视图控制器中获取segue的发送者

我有一个名为Dashboard(D)的VC,它可以打开一个名为Login(L)的VC和一个名为Register(R)的VC.登录也可以打开VC Register.

我尝试尽可能多地使用故事板,所以我用它创建了三个Segues,D到L,D到R,L到R

因此,在D - > L - > R的情况下,并且在D - > R的情况下,当我关闭R时,如果必要则我必须关闭L并告知D他可以开始加载用户信息(启动功能在概括地说).

所以,我想在目的地vc中获得Segue的发送者,知道我把它放在performSegueWithIdentifier的发送者中,就像那样:

[self performSegueWithIdentifier:@"SegueToFbRegister" sender:self];
Run Code Online (Sandbox Code Playgroud)

objective-c storyboard ios segue

11
推荐指数
2
解决办法
2万
查看次数

UITableView prepareForSegue为发件人分配indexPath?

在下面的代码我只是尝试直接从设立SEGUE UIViewControllerDetailViewController.我通常从UITableViewCell(我认为更清楚)做segue 但这次我只想尝试直接从ViewController使用-tableView:didSelectRowAtIndexPath:

我的问题是:我遇到了一种情况,我需要UITableViewCell indexPath-prepareForSegue:sender:我的解决方案中访问来自发送indexPath通道sender.通常我会将发件人设置到self这里,我已经环顾四周,我找不到任何对此的引用,我只是好奇如果使用sender传递indexPath是可以接受的吗?我很确定它是,并且我确信我已经读过你可以在某个地方,但我现在找不到任何参考.

// ------------------------------------------------------------------- **
// DELEGATE: UITableView
// ------------------------------------------------------------------- **
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s", __PRETTY_FUNCTION__);
    [self performSegueWithIdentifier:@"SEGUE_TWO" sender:indexPath];
}

// ------------------------------------------------------------------- **
// SEGUE: ViewController_ONE > DetailViewController
// ------------------------------------------------------------------- **
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"%s", __PRETTY_FUNCTION__);
    if([[segue identifier] isEqualToString:@"SEGUE_TWO"]) {
        NSUInteger cellRow = [(NSIndexPath *)sender row];
        DetailViewController *destinationController = [segue destinationViewController];
        [destinationController setDataString:[[self …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c uitableview segue

11
推荐指数
2
解决办法
2万
查看次数

在prepareForSegue中设置UITextField文本属性

我在ViewController1中有一个textField.我有一个push segue到我的ViewController2,它也有一个textField.我需要将ViewController2中的textField.text设置为等于ViewController1中textField中的文本.这是我的代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqual:@"ViewController2"])
    {
        ViewController2 *VCT = [segue destinationViewController];
        VCT.title = @"View Controller #2";
        VCT.textField.text = self.textField.text;
    }
}
Run Code Online (Sandbox Code Playgroud)

标题制定者工作得很好.为什么textField不起作用?

xcode objective-c uitextfield ios segue

11
推荐指数
1
解决办法
1万
查看次数

performSegueWithIdentifier不产生带有标识符错误的segue

我很难让performSegueWithIdentifier工作.我一直在

"Receiver (<UINavigationController: 0x1e59a9d0>) has no segue with
 identifier 'identA'"
Run Code Online (Sandbox Code Playgroud)

我做的是:

  1. 步骤:创建单个视图应用程序并向视图控制器添加标签 - "查看控制器A".
  2. 步骤:拖放另一个视图控制器并添加一个标签 - "查看控制器B"到新的视图控制器.
  3. 步骤:选择视图控制器A并执行编辑器 - >嵌入 - >导航控制器
  4. 步骤:有线视图控制器A到视图控制器B,推送segue与标识符"identA"像这样: 连接序列

  5. 步骤:在视图控制器A的ViewDidLoad上添加了对performSegueWithIdentifier的调用.像这样:


- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.navigationController performSegueWithIdentifier:@"identA" sender:self];
    // Do any additional setup after loading the view, typically from a nib.
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么???

objective-c uinavigationcontroller ios segue

11
推荐指数
1
解决办法
2万
查看次数

用于推模型与模态段的用例?

比方说,我有一个场景(带有导航栏的推视控制器),它在表格视图中显示一些表格数据.在那个场景的导航栏中,我有一个+符号,它应该打开一个新场景,用户可以在其中添加一个新项目(行到核心数据表).在表格视图中,每行在每个单元格的右侧都有一个箭头,用于打开一个用户可以编辑该特定项目详细信息的场景.我应该使用推送或模态segue +?我应该使用推动或模态segue箭头吗?什么是"最佳实践"?我理解push和modal segues之间的区别,但我想知道哪个更适合上述用例.

iphone uitableview uiviewcontroller ios segue

11
推荐指数
1
解决办法
7652
查看次数

ios - 多个NavigationControllers之间的导航

我试图理解使用NavigationController在(和没有)ViewControllers之间导航的行为,我在阅读文章和文档时误解了一些事情,所以我决定问他们.

主要问题是:如果我们在Storyboard中有多个NavigationControllers并希望从一个到另一个,会发生什么?(这可以通过我们在常见的VC之间使用segue来实现,我是对的吗?)

据我所知,NavigationController代表了一堆ViewControllers,我们可以在其中弹出并推送这些VC.那么现在我们将第一个NavigationController的VC的"位置"从第二个改为VC,接下来会发生什么?第一个堆栈消失了,现在我们只在第二个堆栈内工作了?如果是这样,是否意味着第一个NavigationController的VC堆栈是否已从内存中删除?

也许我完全误解了某些东西或者可能不是:).我很乐意看到您的回复,并希望向您询问有关导航力学的更多详细问题.

UPDATE

关键在于:假设我们有一个(初始)VC,其中两个按钮代表应用程序的两个独立部分.接下来我们点击第一个按钮然后转到一个NC的RootVC,而不是回到我们的初始VC按下第二个按钮然后转到另一个NC.当我们回到最初的VC时,第一个NC的堆栈发生了什么?最初的"NC"到初始VC的最佳方式是什么?

UPDATE

我试图了解内存会发生什么,以及当前场景中哪些VC等等.如果我们在场景中有一些额外的VC,也许它绝对不重要,也许我们确实需要它们更快地在NC(或只是VC)之间切换.所以我想了解它是如何运作的.

viewcontroller ios segue swift

11
推荐指数
1
解决办法
9000
查看次数

只有Custom segues支持iOS 9.0之前的类名

在Xcode 7 GM中,我在故事板中收到了上述警告.这是什么意思?

我确实有一些自定义segues,他们将类分配给转换管理器(UIStoryboardSegue).我在故事板中检查了所有segue,并且所有自定义segues都有自定义类,并且所有非自定义segue都没有分配自定义类(包括展开segues).

有任何想法吗?

xcode ios segue uistoryboardsegue ios9

11
推荐指数
1
解决办法
1588
查看次数

在WatchKit中的接口控制器之间传递数据

如何使用Swift将存储在标签中的数据从我的接口控制器传递到WatchKit中的另一个接口控制器?我似乎无法在任何地方找到答案,希望有人在这里可以帮助我.我已经包含了我的代码部分,它涉及计算我需要传递的值.我基本上想要显示用户计算的相同值,并在下一个名为ResultsController的接口控制器中详细说明.非常感谢任何帮助:D

class InterfaceController: WKInterfaceController {
     var currentValue: String = "0"

     func setDisplayValue(value: Double)
    {
        var percent = value
        //  check if value is an integer
        if value % 1 == 0
        {
            // our value is an integer
            currentValue = "\(Int(value))"// new value %
        }
        else
        {
            // our value is a float
            currentValue = "\(value)"
        }
        // Display 2 decimal places in final amount
       var round =  NSString(format:"%.2f", value)
        displayLabel.setText("$\(round)") // Display final value
        // This value is what …
Run Code Online (Sandbox Code Playgroud)

ios segue swift watchkit

10
推荐指数
2
解决办法
6290
查看次数