标签: segue

故事板iOS5 - 如何在按下Segue按钮时防止故事板改变

我使用新的iOS 5 Utility应用程序模板创建了一个应用程序.从以前的SDK开始,我们现在必须使用故事板作为GUI(我喜欢使用它),但我想知道如何防止"Segue"将视图翻转到故事板上的下一个视图.

默认情况下,有一个按钮,当按下时会翻转到"FlipsideViewController",我想使用此按钮作为登录表单的一部分,但我需要停止故事板进入Segue,除非凭据正确.我已写入所有登录代码但无法阻止页面翻转.我认为这样做的方法实际上会阻止用户通过单击"FlipsideViewController"上的默认"完成"按钮返回.

有人可以帮忙吗?

iphone storyboard ios ios5 segue

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

控制MapKit引脚注释点击选择

我正在尝试捕获MapKit引脚选择选择以执行segue到此位置的详细视图,我在注释引脚中有一个属性:

#import <MapKit/MapKit.h>

@interface alrededorLocation : NSObject <MKAnnotation> {
    NSString *_name;
    NSString *_address;
    CLLocationCoordinate2D _coordinate;
    NSDictionary *additionalInfo;
}
Run Code Online (Sandbox Code Playgroud)

但是我无法捕获引脚选择以执行segue,我试图控制它 - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view

但我没有成功获得所选的引脚参考.

非常感谢

objective-c mapkit ios segue

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

从选项卡视图控制器执行推送查询

我有一个标签栏控制器应用程序,标签栏控制器分叉成几个"标签"视图控制器,在一个视图控制器中我想将用户重定向到另一个视图控制器.我从该选项卡视图控制器创建一个segue到目标视图控制器,并给它一个Identifer.我在"viewDidAppear"中调用"performSegueWithIdentifier"来重定向用户.

当segue是"Modal"时它工作正常,但是因为我想保留标签,我想通过"Push"调用segue.但是,一旦我将segue更改为"Push",它就不再起作用了(它不会尝试转到目标视图控制器).该应用程序没有在模拟器上崩溃,只是停留在原始选项卡视图控制器上.

tabs ios segue

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

iOS 6,Segue:第一次点击UITableViewCell时,不会调用prepareForSegue

我有一个segues的问题.我的UITableViewController有两个与其他UITableViewControllers的segue.segue从控制器链接到控制器,而不是从单元到控制器.

码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

if([segue.identifier isEqualToString:@"segueOne"])
{
    //implementation omitted
}
if([segue.identifier isEqualToString:@"segueTwo"])
{
   //implementation omitted
}
}
Run Code Online (Sandbox Code Playgroud)

邪恶的地方:

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(self.navigationKey==1)
{
    [self performSegueWithIdentifier:@"segueOne" sender:self];

}
if(self.navigationKey==2 || self.navigationKey==3)
{
    [self performSegueWithIdentifier:@"segueTwo" sender:self];
}
}
Run Code Online (Sandbox Code Playgroud)

通常,导航工作.当然,问题是导航不能在首先选择的单元格上工作.任何帮助深表感谢.

cocoa-touch objective-c storyboard ios segue

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

尝试在视图不在窗口层次结构中的VC上显示模态VC

我的故事板看起来像这样:

故事板

这是它的工作原理:在其.m文件中InitialSlidingViewController实例化导航VC topViewController,如下所示:

 -(void)viewDidLoad {
  [super viewDidLoad];

  self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Navigation"];

}
Run Code Online (Sandbox Code Playgroud)

导航VC实例化后,它会创建基础菜单并将其设置为underLeftVC.这是使用ECSlidingViewController.这将创建一个使用平移手势的滑动菜单,类似于Facebook.

NavigationVC的rootVC是我的ItemsCDTVC.当我点击+按钮时,它会弹出一个动作表,允许我从相机拍摄照片或从照片库中选择.但是,我希望它以模态方式转换为ManageItemVC并设置我刚刚选择/拍摄到UIImageView的图片.当我尝试呈现时,它会抛出以下错误:

Warning: Attempt to present <ManageItemViewController: 0x81d52a0> on <InitialSlidingViewController: 0x8122ce0> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

这是真的,因为InitialSlidingVC不在屏幕上,ItemCDTVC是,但我该如何解决这个问题呢?

我在我的故事板中设置了模态类型segue,其中包含来自底部灵活空间的标识符(当点击时,它没有做任何事情,所以我选择了它来创建视觉segue).这是我在ItemCDTVC中的segue代码:

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    // let's get the edited image
    UIImage *image = info[UIImagePickerControllerEditedImage];
    // but if for some reason we disable editing in the future, this is our safeguard
    if(!image) image = info[UIImagePickerControllerOriginalImage];
    if(image) {
        self.pictureImageView.image = image;
        [self performSegueWithIdentifier:@"addItemSegue" …
Run Code Online (Sandbox Code Playgroud)

objective-c uiimagepickercontroller uinavigationcontroller modalviewcontroller segue

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

如何在当前演示完成后执行segue

我有一个情况在我的应用程序,我需要通过展开segue解雇一个模态视图控制器,然后就在那之后呈现一个不同的模态视图控制器.为此,我只是将调用延迟显示新视图控制器1.0秒.这可能不会一直有效,可能由于某种原因需要更长时间才能解除,第二个视图控制器将无法显示,因为正在发生转换.我刚遇到这种情况,虽然在这种情况下确实有效.记录了这个:

警告:在演示文稿正在进行时尝试演示!

我正在寻找更好的解决方案.我想知道是否有可能在第一个完全被解雇之后通过回调抛出新的视图控制器,但是没有performSegueWithIdentifier一个有完成块.

我如何解除模态视图控制器然后呈现新的控制器,始终确保不会发生冲突?

这是我目前的解决方案:

[self performSegueWithIdentifier:@"Unwind Segue" sender:self]; //dismiss modal or pushed VC

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    [tabBarController performSegueWithIdentifier:@"Show New VC" sender:self]; //present new modal VC
});
Run Code Online (Sandbox Code Playgroud)

objective-c ios segue uistoryboardsegue

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

关闭模态,然后立即推视图控制器

如何解除模态然后立即推送另一个视图?

我在didSelectRowAtIndexPath中添加此代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ChatTableViewController *chatVC = (ChatTableViewController*)[storyboard instantiateViewControllerWithIdentifier:@"chatVC"];
 [self dismissViewControllerAnimated:YES completion:^{
    [[self navigationController] pushViewController:chatVC animated:YES];
}];
Run Code Online (Sandbox Code Playgroud)

模态视图解散,但之后没有任何反应.有任何想法吗?

objective-c storyboard ios segue

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

访问tableView SWIFT中的文本字段

我有一个tableView.当点击/选择单元格时,单元格向下展开以显示多个资产.一个资产是文本字段.另一个是"提交"按钮.

当按下Submit按钮时,我需要从文本字段访问用户输入.我怎样才能做到这一点?

重要提示:由于已经选择/扩展了单元格,因此无法使用didSelectRowAtIndexpath.

目前我在customCell上有以下内容:

@IBAction func submitButtonPressed(sender: UIButton) {
    // prepareForSegue is on mainVC
    self.textString = self.textField.text
    println(self.textString) 
 }
Run Code Online (Sandbox Code Playgroud)

在MainVC的"prepareForSegue"中,我有以下内容:

       var cell : CustomCell = self.tableView.dequeueReusableCellWithIdentifier("myCell") as! CustomCell

        let path = self.tableView.indexPathForSelectedRow()!
            println(cell.textField.text)
            self.newText = cell.textString
            self.newInt = self.newText.toInt()

            println(self.newText)
            println(self.newInt)
Run Code Online (Sandbox Code Playgroud)

以下代码正确prints(self.textString) 然而 cell.textString,self.newText并且self.newInt始终如此nil.

知道为什么吗?

tableview custom-cell nsindexpath segue swift

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

iOS:自定义transitioningDelegate不起作用

这是我自定义的transitioningDelegate:

enum CameraState {
    case On
    case Off
}

class CameraTransitioning: NSObject, UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate {
    var state: CameraState

    init(state: CameraState) {
        self.state = state
    }

    func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
        let containerView = transitionContext.containerView()
        let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)
        let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)
        let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)
        let toView = transitionContext.viewForKey(UITransitionContextToViewKey)

        var toViewInitialFrame = transitionContext.initialFrameForViewController(toVC!)
        var fromViewFinalFrame = transitionContext.finalFrameForViewController(fromVC!)
        switch self.state {
        case .On:
            toViewInitialFrame.origin.y = containerView!.frame.height
        case .Off:
            fromViewFinalFrame.origin.y = -containerView!.frame.height
        }

        containerView?.addSubview(toView!)
        toView?.frame = toViewInitialFrame

        let duration = self.transitionDuration(transitionContext)
        UIView.animateWithDuration(duration, …
Run Code Online (Sandbox Code Playgroud)

uiviewanimationtransition ios segue

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

迅捷的segue过渡阴影

我正在使用故事板中的一些标准标记,每个标记都有相同的背景色。我遇到的问题是,当segue过渡快要完成时,整个框架周围都会出现像背景这样的深色阴影。

该图显示了过渡

这很微弱,但足以引起问题。有人遇到过吗?

storyboard ios segue swift

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