相关疑难解决方法(0)

在Swift中实例化和呈现viewController

问题

我开始看一下新SwiftXcode 6,我尝试了一些演示项目和教程.现在我被困在:

实例化然后viewController从特定的故事板中呈现

Objective-C解决方案

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myStoryboardName" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"myVCID"];
[self presentViewController:vc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

如何在Swift上实现这一目标?

objective-c uiviewcontroller ios swift

290
推荐指数
9
解决办法
29万
查看次数

使用Storyboard以编程方式设置初始视图控制器

如何以编程方式设置InitialViewController故事板?我想根据某些条件打开我的故事板到不同的视图,这些条件可能因发布而异.

objective-c uiviewcontroller ios uistoryboard swift

247
推荐指数
7
解决办法
15万
查看次数

故事板 - 参考AppDelegate中的ViewController

考虑以下场景:我有一个基于故事板的应用程序.我将一个ViewController对象添加到storyboard中,将此ViewController的类文件添加到项目中,并在IB身份检查器中指定新类的名称.现在我将如何从AppDelegate以编程方式引用此ViewController?我已经使用相关类创建了一个变量并将其转换为IBOutlet属性,但我没有看到任何方法能够在代码中引用新的ViewController - 任何尝试按住Ctrl键拖动连接都不起作用.

即在AppDelegate中我可以像这样到达基本的ViewController

(MyViewController*) self.window.rootViewController
Run Code Online (Sandbox Code Playgroud)

但故事板中包含的任何其他ViewController怎么样?

iphone objective-c storyboard uiviewcontroller ios

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

使用swift从app delegate打开视图控制器

我正在尝试创建推送通知,根据从推送获得的信息确定要打开的视图.

我已经设法从推送中获取信息,但我现在正在努力让视图打开

查看其他堆栈溢出问题,我目前有以下内容:

App Delegate完成加载:

     //Extract the notification data
    if let notificationPayload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
        // Get which page to open
        let viewload = notificationPayload["view"] as? NSString
        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        //Load correct view
        if viewload == "circles" {

            var viewController = self.window?.rootViewController?.storyboard?.instantiateViewControllerWithIdentifier("Circles") as! UIViewController
            self.window?.rootViewController = viewController

                        }
    }
Run Code Online (Sandbox Code Playgroud)

目前这在var ViewController = self ...行上失败了.

uiviewcontroller ios appdelegate swift

57
推荐指数
6
解决办法
7万
查看次数

使用故事板时子类化UIWindow

我有同样的问题,如本问题所述:

我在哪里可以将我的应用程序使用的窗口从UIWindow更改为我自己的子类"MyWindow"和storyboard?

我的问题是如何在我的app委托中实现一个'window'getter方法,返回'MyWindow'子类?或者也许有其他方法可以将我的子类分配到我的应用程序的主窗口?

iphone cocoa-touch objective-c uiwindow ios

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

iOS:检查用户是否已使用Facebook登录?

我已经开始使用Swift和故事板在Xcode上开发iOS应用程序了.我有一个要求,点击按钮,我将在屏幕上显示用户的Facebook个人资料信息(仅当用户使用Facebook登录时),但如果他没有登录,它将自动进入登录屏幕并成功登录再次显示配置文件视图.

我怎样才能做到这一点?

ios facebook-login swift

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

如何从主程序中检索iOS框架包中的文件/资源​​?

我使用有关为iOS开发创建通用二进制框架以分发库的方法.我还想在框架中添加文件,并将它们加载到主程序中(实际上是SSL证书).这与StackOverflow问题有关,主要区别在于我想要包含除XIB之外的其他内容.

如果我们读取与链接帖子相关的线程,似乎是不可能的.但是,提到了以下博客文章 ; 我们可以读到:

"静态框架不是标准框架的完全替代 - 访问框架资源的标准方法,例如+[NSBundle bundleForClass:]不会返回预期的bundle.通过查询dyld来确定与路径对应的库路径 - 在在静态链接的情况下,这将返回静态库链接到的二进制文件的路径.另外,NSBundle/CFBundle将检查返回地址的前一个堆栈,并使用该返回地址来确定调用代码的dyld二进制路径.这些限制,一些解决方法是可能的,例如-[NSBundle privateFrameworkPath] 用于定位嵌入式框架的路径."

我是iOS开发的初学者,我很难使用这样的机制.privateFrameworksPath确实使用返回路径,但我不知道接下来要做什么来找到我想要加载的文件.

它是这样的:

NSBundle * bundle = [NSBundle bundleForClass:[self class]];
NSString * path = [bundle privateFrameworksPath]; // Works, return something like .../Frameworks
NSString * file = [path stringByAppendingPathComponent:@"MyFramework.framework/Versions/A/my-cert.der"]; 
NSData * trustedCertData = [NSData dataWithContentsOfFile:file]; // Returns nil
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

xcode objective-c ios

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

应用程序试图在自身上呈现模态视图控制器

let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
if userSignedInGlobal == "success"{
    if let mainTabController = storyboard.instantiateViewController(withIdentifier: "MainTabController") as?  MainTabController{
        mainTabController.present(mainTabController, animated: true, completion: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“应用程序试图在其自身上呈现模态视图控制器。呈现控制器是 .'

我需要在使用 firebase 对应用程序进行身份验证后导航到一个页面,以便在验证身份验证后使用上面的代码。我该如何解决这个问题,一个解释如何到达那里的参考链接或代码就足够了。

uitabbarcontroller uikit ios swift

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

以编程方式Swift设置初始视图控制器

我在堆栈溢出时看到了很长的Objective-C答案,但没有快速的答案.

如何从视图控制器以swift方式以编程方式更改初始视图控制器?

我认为它会是这样的:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
storyboard.setInitialViewController(identifier: ViewController())
Run Code Online (Sandbox Code Playgroud)

但不,这没有任何作用.第一行很好,但第二行的功能不存在.

storyboard ios swift

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

Xcode如何更改哪个viewController在启动时首先加载

我正在使用故事板,xcode 4.6.1.我已经创建了一个应用程序,但现在我想回去并在开头添加一个新的视图控制器.如何将此视图控制器指定为第一个在运行时加载的视图控制器?

xcode storyboard uiviewcontroller

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

从 AppDelegate 方法导航到特定的视图控制器

目前,我已经在我的 AppDelegate 中实现了这两个方法

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool
Run Code Online (Sandbox Code Playgroud)

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool
Run Code Online (Sandbox Code Playgroud)

如果用户使用 Spotlight 的搜索结果打开我的应用程序,第一个将被调用,如果我的应用程序从 Apple Maps(因为它是一个路由应用程序)打开,则第二个将被调用。

我的问题是,UIViewController从 AppDELEGATE转到特定位置的最佳方法是什么(无论用户处于何种视图都独立)?

我问的原因是因为目前我正试图根据用户所在的位置手动导航到它。例如,它们可能位于以UIViewController模态显示的a中(然后需要关闭),或者它们可能位于 a 的深处,UINavigationController然后应用程序需要在其中调用popToRootViewController.

这样做的话,代码会变得杂乱无章,而且似乎无法正常工作。这样做似乎也不正确,因为它非常脆弱。

uitabbarcontroller uiviewcontroller ios appdelegate nsuseractivity

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